aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/sh
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/sh')
-rw-r--r--sysdeps/sh/Implies4
-rw-r--r--sysdeps/sh/Makefile11
-rw-r--r--sysdeps/sh/____longjmp_chk.S78
-rw-r--r--sysdeps/sh/_mcount.S87
-rw-r--r--sysdeps/sh/abort-instr.h3
-rw-r--r--sysdeps/sh/backtrace.c1
-rw-r--r--sysdeps/sh/bits/endian.h13
-rw-r--r--sysdeps/sh/bits/fenv.h84
-rw-r--r--sysdeps/sh/bits/huge_val.h54
-rw-r--r--sysdeps/sh/bits/link.h69
-rw-r--r--sysdeps/sh/bits/setjmp.h46
-rw-r--r--sysdeps/sh/bsd-_setjmp.S51
-rw-r--r--sysdeps/sh/bsd-setjmp.S50
-rw-r--r--sysdeps/sh/configure5
-rw-r--r--sysdeps/sh/configure.ac6
-rw-r--r--sysdeps/sh/crti.S120
-rw-r--r--sysdeps/sh/crtn.S53
-rw-r--r--sysdeps/sh/dl-machine.h466
-rw-r--r--sysdeps/sh/dl-tls.h28
-rw-r--r--sysdeps/sh/dl-trampoline.S430
-rw-r--r--sysdeps/sh/fpu_control.h76
-rw-r--r--sysdeps/sh/gccframe.h21
-rw-r--r--sysdeps/sh/gmp-mparam.h29
-rw-r--r--sysdeps/sh/jmpbuf-offsets.h19
-rw-r--r--sysdeps/sh/jmpbuf-unwind.h46
-rw-r--r--sysdeps/sh/ldsodefs.h40
-rw-r--r--sysdeps/sh/libc-tls.c32
-rw-r--r--sysdeps/sh/libm-test-ulps417
-rw-r--r--sysdeps/sh/libm-test-ulps-name1
-rw-r--r--sysdeps/sh/linkmap.h5
-rw-r--r--sysdeps/sh/machine-gmon.h30
-rw-r--r--sysdeps/sh/math_private.h10
-rw-r--r--sysdeps/sh/memcpy.S198
-rw-r--r--sysdeps/sh/memset.S88
-rw-r--r--sysdeps/sh/memusage.h20
-rw-r--r--sysdeps/sh/nptl/bits/pthreadtypes-arch.h69
-rw-r--r--sysdeps/sh/nptl/bits/semaphore.h35
-rw-r--r--sysdeps/sh/nptl/pthread_spin_init.c19
-rw-r--r--sysdeps/sh/nptl/pthread_spin_lock.c33
-rw-r--r--sysdeps/sh/nptl/pthread_spin_trylock.S31
-rw-r--r--sysdeps/sh/nptl/pthread_spin_unlock.S29
-rw-r--r--sysdeps/sh/nptl/pthreaddef.h34
-rw-r--r--sysdeps/sh/nptl/tcb-offsets.sym15
-rw-r--r--sysdeps/sh/nptl/tls.h168
-rw-r--r--sysdeps/sh/preconfigure6
-rw-r--r--sysdeps/sh/s_fma.c5
-rw-r--r--sysdeps/sh/s_fmaf.c5
-rw-r--r--sysdeps/sh/sh3/__longjmp.S63
-rw-r--r--sysdeps/sh/sh3/setjmp.S81
-rw-r--r--sysdeps/sh/sh4/Makefile3
-rw-r--r--sysdeps/sh/sh4/Versions5
-rw-r--r--sysdeps/sh/sh4/__longjmp.S73
-rw-r--r--sysdeps/sh/sh4/dl-trampoline.S4
-rw-r--r--sysdeps/sh/sh4/fpu/fclrexcpt.c42
-rw-r--r--sysdeps/sh/sh4/fpu/fedisblxcpt.c39
-rw-r--r--sysdeps/sh/sh4/fpu/feenablxcpt.c38
-rw-r--r--sysdeps/sh/sh4/fpu/fegetenv.c34
-rw-r--r--sysdeps/sh/sh4/fpu/fegetexcept.c32
-rw-r--r--sysdeps/sh/sh4/fpu/fegetmode.c27
-rw-r--r--sysdeps/sh/sh4/fpu/fegetround.c35
-rw-r--r--sysdeps/sh/sh4/fpu/feholdexcpt.c44
-rw-r--r--sysdeps/sh/sh4/fpu/fesetenv.c36
-rw-r--r--sysdeps/sh/sh4/fpu/fesetexcept.c32
-rw-r--r--sysdeps/sh/sh4/fpu/fesetmode.c38
-rw-r--r--sysdeps/sh/sh4/fpu/fesetround.c45
-rw-r--r--sysdeps/sh/sh4/fpu/feupdateenv.c41
-rw-r--r--sysdeps/sh/sh4/fpu/fgetexcptflg.c38
-rw-r--r--sysdeps/sh/sh4/fpu/fraiseexcpt.c75
-rw-r--r--sysdeps/sh/sh4/fpu/fsetexcptflg.c39
-rw-r--r--sysdeps/sh/sh4/fpu/ftestexcept.c32
-rw-r--r--sysdeps/sh/sh4/setjmp.S90
-rw-r--r--sysdeps/sh/soft-fp/sfp-machine.h57
-rw-r--r--sysdeps/sh/sotruss-lib.c50
-rw-r--r--sysdeps/sh/stackguard-macros.h6
-rw-r--r--sysdeps/sh/stackinfo.h33
-rw-r--r--sysdeps/sh/start.S111
-rw-r--r--sysdeps/sh/strlen.S83
-rw-r--r--sysdeps/sh/sysdep.h75
-rw-r--r--sysdeps/sh/tininess.h1
-rw-r--r--sysdeps/sh/tls-macros.h143
-rw-r--r--sysdeps/sh/tst-audit.h25
81 files changed, 0 insertions, 4710 deletions
diff --git a/sysdeps/sh/Implies b/sysdeps/sh/Implies
deleted file mode 100644
index 1fdc53d034..0000000000
--- a/sysdeps/sh/Implies
+++ /dev/null
@@ -1,4 +0,0 @@
-sh/soft-fp
-wordsize-32
-ieee754/flt-32
-ieee754/dbl-64
diff --git a/sysdeps/sh/Makefile b/sysdeps/sh/Makefile
deleted file mode 100644
index 0c6db9a9d4..0000000000
--- a/sysdeps/sh/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-ifeq ($(subdir),csu)
-gen-as-const-headers += tcb-offsets.sym
-endif
-
-ifeq ($(subdir),gmon)
-sysdep_routines += _mcount
-endif
-
-ifeq ($(subdir),debug)
-CFLAGS-backtrace.c += -funwind-tables
-endif
diff --git a/sysdeps/sh/____longjmp_chk.S b/sysdeps/sh/____longjmp_chk.S
deleted file mode 100644
index e49c08f027..0000000000
--- a/sysdeps/sh/____longjmp_chk.S
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
- .section .rodata.str1.1,"aMS",@progbits,1
- .type longjmp_msg,@object
-longjmp_msg:
- .string "longjmp causes uninitialized stack frame"
- .size longjmp_msg, .-longjmp_msg
- .text
-
-#define __longjmp ____longjmp_chk
-
-#ifdef PIC
-# define CALL_FAIL \
- mov.l .Lfail, r1; \
- mov.l .Lstr, r4; \
- mov.l r12, @-r15; \
- cfi_remember_state; \
- cfi_adjust_cfa_offset (4); \
- cfi_rel_offset (r12, 0); \
- mova .Lgot, r0; \
- mov.l .Lgot, r12; \
- add r0, r12; \
- sts.l pr, @-r15; \
- cfi_adjust_cfa_offset (4); \
- cfi_rel_offset (pr, 0); \
- bsrf r1; \
- add r12, r4; \
- /* Unreachable. */ \
-.Lfail0: \
- .align 2; \
-.Lgot: \
- .long _GLOBAL_OFFSET_TABLE_; \
-.Lstr: \
- .long longjmp_msg@GOTOFF; \
-.Lfail: \
- .long __GI___fortify_fail@PLT-(.Lfail0-.); \
- cfi_restore_state;
-#else
-# define CALL_FAIL \
- mov.l .Lfail, r1; \
- mov.l .Lstr, r4; \
- sts.l pr, @-r15; \
- cfi_remember_state; \
- cfi_adjust_cfa_offset (4); \
- cfi_rel_offset (pr, 0); \
- jsr @r1; \
- nop; \
- /* Unreachable. */ \
- .align 2; \
-.Lstr: \
- .long longjmp_msg; \
-.Lfail: \
- .long __fortify_fail; \
- cfi_restore_state;
-#endif
-
-#define CHECK_SP(reg) \
- cmp/hs r15, reg; \
- bt .Lok; \
- CALL_FAIL \
-.Lok:
-
-#include <__longjmp.S>
diff --git a/sysdeps/sh/_mcount.S b/sysdeps/sh/_mcount.S
deleted file mode 100644
index 1deee2ddad..0000000000
--- a/sysdeps/sh/_mcount.S
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Machine-specific calling sequence for `mcount' profiling function. SuperH
- Copyright (C) 2001-2017 Free Software Foundation, Inc.
- Contributed by NIIBE Yutaka <gniibe@m17n.org>
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
- .globl C_SYMBOL_NAME(_mcount)
- .type C_SYMBOL_NAME(_mcount),@function
- cfi_startproc
- .align 5
-C_LABEL(_mcount)
- /* Save registers. */
- mov.l r4,@-r15
- cfi_adjust_cfa_offset (4)
- cfi_rel_offset (r4, 0)
- mov.l r5,@-r15
- cfi_adjust_cfa_offset (4)
- cfi_rel_offset (r5, 0)
- mov.l r6,@-r15
- cfi_adjust_cfa_offset (4)
- cfi_rel_offset (r6, 0)
- mov.l r7,@-r15
- cfi_adjust_cfa_offset (4)
- cfi_rel_offset (r7, 0)
- sts.l pr,@-r15
- cfi_adjust_cfa_offset (4)
- cfi_rel_offset (pr, 0)
-
- mov.l @(20,r15),r4
- sts pr,r5
-
-#ifdef SHARED
- mov.l 0f,r1
- mova 0f,r0
- add r1,r0
- mov.l 1f,r1
- mov.l @(r0,r1),r1
-#else
- mov.l 1f,r1
-#endif
- jsr @r1
- nop
-
- /* Pop the saved registers. */
- lds.l @r15+,pr
- cfi_adjust_cfa_offset (-4)
- cfi_restore (pr)
- mov.l @r15+,r7
- cfi_adjust_cfa_offset (-4)
- cfi_restore (r7)
- mov.l @r15+,r6
- cfi_adjust_cfa_offset (-4)
- cfi_restore (r6)
- mov.l @r15+,r5
- cfi_adjust_cfa_offset (-4)
- cfi_restore (r5)
- rts
- mov.l @r15+,r4
- /* Omit CFI for restore in delay slot. */
-
- .align 2
-#ifdef SHARED
-0: .long _GLOBAL_OFFSET_TABLE_
-1: .long C_SYMBOL_NAME(__mcount_internal)@GOT
-#else
-1: .long C_SYMBOL_NAME(__mcount_internal)
-#endif
- cfi_endproc
-ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
-
-#undef mcount
-weak_alias (_mcount, mcount)
diff --git a/sysdeps/sh/abort-instr.h b/sysdeps/sh/abort-instr.h
deleted file mode 100644
index 69381aec8e..0000000000
--- a/sysdeps/sh/abort-instr.h
+++ /dev/null
@@ -1,3 +0,0 @@
-/* An instruction which should crash any program is `sleep'. */
-#define ABORT_INSTRUCTION_ASM sleep
-#define ABORT_INSTRUCTION asm ("sleep")
diff --git a/sysdeps/sh/backtrace.c b/sysdeps/sh/backtrace.c
deleted file mode 100644
index 4f3eafb09c..0000000000
--- a/sysdeps/sh/backtrace.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../x86_64/backtrace.c"
diff --git a/sysdeps/sh/bits/endian.h b/sysdeps/sh/bits/endian.h
deleted file mode 100644
index 1fef1ff938..0000000000
--- a/sysdeps/sh/bits/endian.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/* SH is bi-endian but with a big-endian FPU. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#ifdef __LITTLE_ENDIAN__
-#define __BYTE_ORDER __LITTLE_ENDIAN
-#define __FLOAT_WORD_ORDER __LITTLE_ENDIAN
-#else
-#define __BYTE_ORDER __BIG_ENDIAN
-#define __FLOAT_WORD_ORDER __BIG_ENDIAN
-#endif
diff --git a/sysdeps/sh/bits/fenv.h b/sysdeps/sh/bits/fenv.h
deleted file mode 100644
index a121efb101..0000000000
--- a/sysdeps/sh/bits/fenv.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _FENV_H
-# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
-#endif
-
-
-/* Define bits representing the exception. We use the bit positions
- of the appropriate bits in the FPU control word. */
-enum
- {
- FE_INEXACT =
-#define FE_INEXACT 0x04
- FE_INEXACT,
- FE_UNDERFLOW =
-#define FE_UNDERFLOW 0x08
- FE_UNDERFLOW,
- FE_OVERFLOW =
-#define FE_OVERFLOW 0x10
- FE_OVERFLOW,
- FE_DIVBYZERO =
-#define FE_DIVBYZERO 0x20
- FE_DIVBYZERO,
- FE_INVALID =
-#define FE_INVALID 0x40
- FE_INVALID,
- };
-
-#define FE_ALL_EXCEPT \
- (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
-
-/* The SH FPU supports two of the four defined rounding modes: round to nearest
- and round to zero. We use again the bit positions in the FPU control word
- as the values for the appropriate macros. */
-enum
- {
- __FE_UNDEFINED = -1,
-
- FE_TONEAREST =
-#define FE_TONEAREST 0x0
- FE_TONEAREST,
- FE_TOWARDZERO =
-#define FE_TOWARDZERO 0x1
- FE_TOWARDZERO,
- };
-
-
-/* Type representing exception flags. */
-typedef unsigned short int fexcept_t;
-
-
-/* Type representing floating-point environment. This function corresponds
- to the layout of the block written by the `fstenv'. */
-typedef struct
- {
- unsigned int __fpscr;
- }
-fenv_t;
-
-/* If the default argument is used we use this value. */
-#define FE_DFL_ENV ((const fenv_t *) -1)
-
-#if __GLIBC_USE (IEC_60559_BFP_EXT)
-/* Type representing floating-point control modes. */
-typedef unsigned int femode_t;
-
-/* Default floating-point control modes. */
-# define FE_DFL_MODE ((const femode_t *) -1L)
-#endif
diff --git a/sysdeps/sh/bits/huge_val.h b/sysdeps/sh/bits/huge_val.h
deleted file mode 100644
index aab7a23b17..0000000000
--- a/sysdeps/sh/bits/huge_val.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* `HUGE_VAL' constants for IEEE 754 machines (where it is infinity).
- Used by <stdlib.h> and <math.h> functions for overflow.
- SH version.
- Copyright (C) 1992-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _MATH_H
-# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
-#endif
-
-/* IEEE positive infinity (-HUGE_VAL is negative infinity). */
-
-#if __GNUC_PREREQ(3,3)
-# define HUGE_VAL (__builtin_huge_val())
-#elif __GNUC_PREREQ(2,96)
-# define HUGE_VAL (__extension__ 0x1.0p2047)
-#elif defined __GNUC__
-
-# define HUGE_VAL \
- (__extension__ \
- ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \
- { __l: 0x000000007ff00000ULL }).__d)
-
-#else /* not GCC */
-
-# include <endian.h>
-
-typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
-
-# if __BYTE_ORDER == __BIG_ENDIAN
-# define __HUGE_VAL_bytes { 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 }
-# endif
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define __HUGE_VAL_bytes { 0, 0, 0xf0, 0x7f, 0, 0, 0, 0 }
-# endif
-
-static __huge_val_t __huge_val = { __HUGE_VAL_bytes };
-# define HUGE_VAL (__huge_val.__d)
-
-#endif /* GCC. */
diff --git a/sysdeps/sh/bits/link.h b/sysdeps/sh/bits/link.h
deleted file mode 100644
index 0427ebc961..0000000000
--- a/sysdeps/sh/bits/link.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _LINK_H
-# error "Never include <bits/link.h> directly; use <link.h> instead."
-#endif
-
-
-/* Registers for entry into PLT on SH. */
-typedef struct La_sh_regs
-{
- uint32_t lr_r2;
- uint32_t lr_r3;
- uint32_t lr_r4;
- uint32_t lr_r5;
- uint32_t lr_r6;
- uint32_t lr_r7;
- uint32_t lr_fpscr;
- float lr_fr4;
- float lr_fr5;
- float lr_fr6;
- float lr_fr7;
- float lr_fr8;
- float lr_fr9;
- float lr_fr10;
- float lr_fr11;
-} La_sh_regs;
-
-/* Return values for calls from PLT on SH. */
-typedef struct La_sh_retval
-{
- uint32_t lrv_r0;
- uint32_t lrv_r1;
- float lrv_fr0;
- float lrv_fr1;
-} La_sh_retval;
-
-
-__BEGIN_DECLS
-
-extern Elf32_Addr la_sh_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- La_sh_regs *__regs,
- unsigned int *__flags,
- const char *__symname,
- long int *__framesizep);
-extern unsigned int la_sh_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- const La_sh_regs *__inregs,
- La_sh_retval *__outregs,
- const char *__symname);
-
-__END_DECLS
diff --git a/sysdeps/sh/bits/setjmp.h b/sysdeps/sh/bits/setjmp.h
deleted file mode 100644
index 11617d7c8a..0000000000
--- a/sysdeps/sh/bits/setjmp.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Define the machine-dependent type `jmp_buf'. SH version. */
-#ifndef _BITS_SETJMP_H
-#define _BITS_SETJMP_H 1
-
-#if !defined _SETJMP_H && !defined _PTHREAD_H
-# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-#endif
-
-#ifndef _ASM
-typedef struct __jmp_buf_internal_tag
- {
- /* Callee-saved registers r8 through r15. */
- int __regs[8];
-
- /* Program counter. */
- void * __pc;
-
- /* The global pointer. */
- void * __gbr;
-
- /* Floating point status register. */
- int __fpscr;
-
- /* Callee-saved floating point registers fr12 through fr15. */
- int __fpregs[4];
- } __jmp_buf[1];
-#endif
-
-#endif /* bits/setjmp.h */
diff --git a/sysdeps/sh/bsd-_setjmp.S b/sysdeps/sh/bsd-_setjmp.S
deleted file mode 100644
index d5d011ec6c..0000000000
--- a/sysdeps/sh/bsd-_setjmp.S
+++ /dev/null
@@ -1,51 +0,0 @@
-/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. SH version.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
- in setjmp doesn't clobber the state restored by longjmp. */
-
-#include <sysdep.h>
-
-ENTRY (_setjmp)
-#ifdef SHARED
- mova 1f, r0
- mov.l 1f, r1
- bra 2f
- add r1, r0
- .align 2
-1:
- .long _GLOBAL_OFFSET_TABLE_
-2:
- mov.l 3f, r1
- mov.l @(r0,r1), r1
- jmp @r1
- mov #0, r5
- .align 2
-3:
- .long C_SYMBOL_NAME(__sigsetjmp@GOT)
-#else
- mov.l 1f, r1
- jmp @r1
- mov #0, r5
- .align 2
-1:
- .long C_SYMBOL_NAME(__sigsetjmp)
-#endif
-END (_setjmp)
-libc_hidden_def (_setjmp)
diff --git a/sysdeps/sh/bsd-setjmp.S b/sysdeps/sh/bsd-setjmp.S
deleted file mode 100644
index 73e4209e73..0000000000
--- a/sysdeps/sh/bsd-setjmp.S
+++ /dev/null
@@ -1,50 +0,0 @@
-/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. SH version.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
- We cannot do it in C because it must be a tail-call, so frame-unwinding
- in setjmp doesn't clobber the state restored by longjmp. */
-
-#include <sysdep.h>
-
-ENTRY (setjmp)
-#ifdef SHARED
- mova 1f, r0
- mov.l 1f, r1
- bra 2f
- add r1, r0
- .align 2
-1:
- .long _GLOBAL_OFFSET_TABLE_
-2:
- mov.l 3f, r1
- mov.l @(r0,r1), r1
- jmp @r1
- mov #1, r5
- .align 2
-3:
- .long C_SYMBOL_NAME(__sigsetjmp@GOT)
-#else
- mov.l 1f, r1
- jmp @r1
- mov #1, r5
- .align 2
-1:
- .long C_SYMBOL_NAME(__sigsetjmp)
-#endif
-END (setjmp)
diff --git a/sysdeps/sh/configure b/sysdeps/sh/configure
deleted file mode 100644
index 110eb65b06..0000000000
--- a/sysdeps/sh/configure
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
- # Local configure fragment for sysdeps/sh.
-
-$as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
-
diff --git a/sysdeps/sh/configure.ac b/sysdeps/sh/configure.ac
deleted file mode 100644
index 21400c447d..0000000000
--- a/sysdeps/sh/configure.ac
+++ /dev/null
@@ -1,6 +0,0 @@
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-# Local configure fragment for sysdeps/sh.
-
-dnl It is always possible to access static and hidden symbols in an
-dnl position independent way.
-AC_DEFINE(PI_STATIC_AND_HIDDEN)
diff --git a/sysdeps/sh/crti.S b/sysdeps/sh/crti.S
deleted file mode 100644
index d19de956a6..0000000000
--- a/sysdeps/sh/crti.S
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Special .init and .fini section support for SH.
- Copyright (C) 2000-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* crti.S puts a function prologue at the beginning of the .init and
- .fini sections and defines global symbols for those addresses, so
- they can be called as functions. The symbols _init and _fini are
- magic and cause the linker to emit DT_INIT and DT_FINI. */
-
-#include <libc-symbols.h>
-#include <sysdep.h>
-
-#ifndef PREINIT_FUNCTION
-# define PREINIT_FUNCTION __gmon_start__
-#endif
-
-#ifndef PREINIT_FUNCTION_WEAK
-# define PREINIT_FUNCTION_WEAK 1
-#endif
-
-#if PREINIT_FUNCTION_WEAK
- weak_extern (PREINIT_FUNCTION)
-#else
- .hidden PREINIT_FUNCTION
-#endif
-
- .section .init,"ax",@progbits
- .align 5
- .global _init
- .type _init, @function
-_init:
- mov.l r12,@-r15
- mova .L12,r0
- mov.l .L12,r12
- mov.l r14,@-r15
- add r0,r12
- sts.l pr,@-r15
-#if PREINIT_FUNCTION_WEAK
- mov.l .L13,r0
- mov.l @(r0,r12),r1
- tst r1,r1
- bt/s .L8
- mov r15,r14
- mov.l .L14,r1
- bsrf r1
-.LPCS0:
- nop
-.L8:
-#else
- mova .L13,r0
- mov.l .L13,r1
- add r0,r1
- jsr @r1
- mov r15,r14
-#endif
- bra 1f
- nop
- .align 2
-.L12:
- .long _GLOBAL_OFFSET_TABLE_
-#if PREINIT_FUNCTION_WEAK
-.L13:
- .long PREINIT_FUNCTION@GOT
-.L14:
- .long PREINIT_FUNCTION@PLT-(.LPCS0+2-(.))
-#else
-.L13:
- .long PREINIT_FUNCTION@PLT
-#endif
-1:
-
- .section .fini,"ax",@progbits
- .align 5
- .global _fini
- .type _fini, @function
-_fini:
- mov.l r12,@-r15
- mova .L19,r0
- mov.l r14,@-r15
- sts.l pr,@-r15
- mov.l .L19,r12
- mov r15,r14
- add r0,r12
- bra 0f
- nop
- .align 2
-.L19:
- .long _GLOBAL_OFFSET_TABLE_
-0:
diff --git a/sysdeps/sh/crtn.S b/sysdeps/sh/crtn.S
deleted file mode 100644
index 128f951e90..0000000000
--- a/sysdeps/sh/crtn.S
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Special .init and .fini section support for SH.
- Copyright (C) 2000-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* crtn.S puts function epilogues in the .init and .fini sections
- corresponding to the prologues in crti.S. */
-
- .section .init,"ax",@progbits
- mov r14,r15
- lds.l @r15+,pr
- mov.l @r15+,r14
- mov.l @r15+,r12
- rts
- nop
-
- .section .fini,"ax",@progbits
- mov r14,r15
- lds.l @r15+,pr
- mov.l @r15+,r14
- mov.l @r15+,r12
- rts
- nop
diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h
deleted file mode 100644
index 2b468af6fa..0000000000
--- a/sysdeps/sh/dl-machine.h
+++ /dev/null
@@ -1,466 +0,0 @@
-/* Machine-dependent ELF dynamic relocation inline functions. SH version.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef dl_machine_h
-#define dl_machine_h
-
-#define ELF_MACHINE_NAME "SH"
-
-#include <sys/param.h>
-#include <sysdep.h>
-#include <assert.h>
-
-/* Return nonzero iff ELF header is compatible with the running host. */
-static inline int __attribute__ ((unused))
-elf_machine_matches_host (const Elf32_Ehdr *ehdr)
-{
- return ehdr->e_machine == EM_SH;
-}
-
-
-/* Return the link-time address of _DYNAMIC. Conveniently, this is the
- first element of the GOT. This must be inlined in a function which
- uses global data. */
-static inline Elf32_Addr __attribute__ ((unused))
-elf_machine_dynamic (void)
-{
- register Elf32_Addr *got;
- asm ("mov r12,%0" :"=r" (got));
- return *got;
-}
-
-
-/* Return the run-time load address of the shared object. */
-static inline Elf32_Addr __attribute__ ((unused))
-elf_machine_load_address (void)
-{
- Elf32_Addr addr;
- asm ("mov.l 1f,r0\n\
- mov.l 3f,r2\n\
- add r12,r2\n\
- mov.l @(r0,r12),r0\n\
- bra 2f\n\
- sub r0,r2\n\
- .align 2\n\
- 1: .long _dl_start@GOT\n\
- 3: .long _dl_start@GOTOFF\n\
- 2: mov r2,%0"
- : "=r" (addr) : : "r0", "r1", "r2");
- return addr;
-}
-
-
-/* Set up the loaded object described by L so its unrelocated PLT
- entries will jump to the on-demand fixup code in dl-runtime.c. */
-
-static inline int __attribute__ ((unused, always_inline))
-elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
-{
- Elf32_Addr *got;
- extern void _dl_runtime_resolve (Elf32_Word);
- extern void _dl_runtime_profile (Elf32_Word);
-
- if (l->l_info[DT_JMPREL] && lazy)
- {
- /* The GOT entries for functions in the PLT have not yet been filled
- in. Their initial contents will arrange when called to load an
- offset into the .rela.plt section and _GLOBAL_OFFSET_TABLE_[1],
- and then jump to _GLOBAL_OFFSET_TABLE[2]. */
- got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
- /* If a library is prelinked but we have to relocate anyway,
- we have to be able to undo the prelinking of .got.plt.
- The prelinker saved us here address of .plt + 36. */
- if (got[1])
- {
- l->l_mach.plt = got[1] + l->l_addr;
- l->l_mach.gotplt = (Elf32_Addr) &got[3];
- }
- got[1] = (Elf32_Addr) l; /* Identify this shared object. */
-
- /* The got[2] entry contains the address of a function which gets
- called to get the address of a so far unresolved function and
- jump to it. The profiling extension of the dynamic linker allows
- to intercept the calls to collect information. In this case we
- don't store the address in the GOT so that all future calls also
- end in this function. */
- if (profile)
- {
- got[2] = (Elf32_Addr) &_dl_runtime_profile;
- /* Say that we really want profiling and the timers are started. */
- if (GLRO(dl_profile) != NULL
- && _dl_name_match_p (GLRO(dl_profile), l))
- GL(dl_profile_map) = l;
- }
- else
- /* This function will get called to fix up the GOT entry indicated by
- the offset on the stack, and then jump to the resolved address. */
- got[2] = (Elf32_Addr) &_dl_runtime_resolve;
- }
- return lazy;
-}
-
-#define ELF_MACHINE_RUNTIME_FIXUP_ARGS int plt_type
-#define ELF_MACHINE_RUNTIME_FIXUP_PARAMS plt_type
-
-/* Mask identifying addresses reserved for the user program,
- where the dynamic linker should not map anything. */
-#define ELF_MACHINE_USER_ADDRESS_MASK 0x80000000UL
-
-/* Initial entry point code for the dynamic linker.
- The C function `_dl_start' is the real entry point;
- its return value is the user program's entry point. */
-
-#define RTLD_START asm ("\
-.text\n\
-.globl _start\n\
-.globl _dl_start_user\n\
-_start:\n\
- mov r15,r4\n\
- mov.l .L_dl_start,r1\n\
- mova .L_dl_start,r0\n\
- add r1,r0\n\
- jsr @r0\n\
- nop\n\
-_dl_start_user:\n\
- ! Save the user entry point address in r8.\n\
- mov r0,r8\n\
- ! Point r12 at the GOT.\n\
- mov.l 1f,r12\n\
- mova 1f,r0\n\
- bra 2f\n\
- add r0,r12\n\
- .align 2\n\
-1: .long _GLOBAL_OFFSET_TABLE_\n\
-2: ! See if we were run as a command with the executable file\n\
- ! name as an extra leading argument.\n\
- mov.l .L_dl_skip_args,r0\n\
- mov.l @(r0,r12),r0\n\
- mov.l @r0,r0\n\
- ! Get the original argument count.\n\
- mov.l @r15,r5\n\
- ! Subtract _dl_skip_args from it.\n\
- sub r0,r5\n\
- ! Adjust the stack pointer to skip _dl_skip_args words.\n\
- shll2 r0\n\
- add r0,r15\n\
- ! Store back the modified argument count.\n\
- mov.l r5,@r15\n\
- ! Compute argv address and envp.\n\
- mov r15,r6\n\
- add #4,r6\n\
- mov r5,r7\n\
- shll2 r7\n\
- add r15,r7\n\
- add #8,r7\n\
- mov.l .L_dl_loaded,r0\n\
- mov.l @(r0,r12),r0\n\
- mov.l @r0,r4\n\
- ! Call _dl_init.\n\
- mov.l .L_dl_init,r1\n\
- mova .L_dl_init,r0\n\
- add r1,r0\n\
- jsr @r0\n\
- nop\n\
-1: ! Pass our finalizer function to the user in r4, as per ELF ABI.\n\
- mov.l .L_dl_fini,r0\n\
- mov.l @(r0,r12),r4\n\
- ! Jump to the user's entry point.\n\
- jmp @r8\n\
- nop\n\
- .align 2\n\
-.L_dl_start:\n\
- .long _dl_start@PLT\n\
-.L_dl_skip_args:\n\
- .long _dl_skip_args@GOT\n\
-.L_dl_init:\n\
- .long _dl_init@PLT\n\
-.L_dl_loaded:\n\
- .long _rtld_local@GOT\n\
-.L_dl_fini:\n\
- .long _dl_fini@GOT\n\
- .type __fpscr_values,@object\n\
- .global __fpscr_values\n\
-__fpscr_values:\n\
- .long 0\n\
- .long 0x80000\n\
- .weak __fpscr_values\n\
-.previous\n\
-");
-
-/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
- TLS variable, so undefined references should not be allowed to
- define the value.
- ELF_RTYPE_CLASS_COPY iff TYPE should not be allowed to resolve to one
- of the main executable's symbols, as for a COPY reloc. */
-#define elf_machine_type_class(type) \
- ((((type) == R_SH_JMP_SLOT || (type) == R_SH_TLS_DTPMOD32 \
- || (type) == R_SH_TLS_DTPOFF32 || (type) == R_SH_TLS_TPOFF32) \
- * ELF_RTYPE_CLASS_PLT) \
- | (((type) == R_SH_COPY) * ELF_RTYPE_CLASS_COPY))
-
-/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */
-#define ELF_MACHINE_JMP_SLOT R_SH_JMP_SLOT
-
-/* We define an initialization functions. This is called very early in
- _dl_sysdep_start. */
-#define DL_PLATFORM_INIT dl_platform_init ()
-
-static inline void __attribute__ ((unused))
-dl_platform_init (void)
-{
- if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0')
- /* Avoid an empty string which would disturb us. */
- GLRO(dl_platform) = NULL;
-}
-
-static inline Elf32_Addr
-elf_machine_fixup_plt (struct link_map *map, lookup_t t,
- const Elf32_Rela *reloc,
- Elf32_Addr *reloc_addr, Elf32_Addr value)
-{
- return *reloc_addr = value;
-}
-
-/* Return the final value of a plt relocation. */
-static inline Elf32_Addr
-elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
- Elf32_Addr value)
-{
- return value + reloc->r_addend;
-}
-
-#define ARCH_LA_PLTENTER sh_gnu_pltenter
-#define ARCH_LA_PLTEXIT sh_gnu_pltexit
-
-#endif /* !dl_machine_h */
-
-/* SH never uses Elf32_Rel relocations. */
-#define ELF_MACHINE_NO_REL 1
-#define ELF_MACHINE_NO_RELA 0
-
-#ifdef RESOLVE_MAP
-
-/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
- MAP is the object containing the reloc. */
-
-auto inline void
-__attribute ((always_inline))
-elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
- const Elf32_Sym *sym, const struct r_found_version *version,
- void *const reloc_addr_arg, int skip_ifunc)
-{
- Elf32_Addr *const reloc_addr = reloc_addr_arg;
- const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
- Elf32_Addr value;
-
-#define COPY_UNALIGNED_WORD(swp, twp, align) \
- { \
- void *__s = (swp), *__t = (twp); \
- unsigned char *__s1 = __s, *__t1 = __t; \
- unsigned short *__s2 = __s, *__t2 = __t; \
- unsigned long *__s4 = __s, *__t4 = __t; \
- switch ((align)) \
- { \
- case 0: \
- *__t4 = *__s4; \
- break; \
- case 2: \
- *__t2++ = *__s2++; \
- *__t2 = *__s2; \
- break; \
- default: \
- *__t1++ = *__s1++; \
- *__t1++ = *__s1++; \
- *__t1++ = *__s1++; \
- *__t1 = *__s1; \
- break; \
- } \
- }
-
- if (__glibc_unlikely (r_type == R_SH_RELATIVE))
- {
-#ifndef RTLD_BOOTSTRAP
- if (map != &GL(dl_rtld_map)) /* Already done in rtld itself. */
-#endif
- {
- if (reloc->r_addend)
- value = map->l_addr + reloc->r_addend;
- else
- {
- COPY_UNALIGNED_WORD (reloc_addr_arg, &value,
- (int) reloc_addr_arg & 3);
- value += map->l_addr;
- }
- COPY_UNALIGNED_WORD (&value, reloc_addr_arg,
- (int) reloc_addr_arg & 3);
- }
- }
-#ifndef RTLD_BOOTSTRAP
- else if (__glibc_unlikely (r_type == R_SH_NONE))
- return;
-#endif
- else
- {
- const Elf32_Sym *const refsym = sym;
- struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
-
- value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value;
- value += reloc->r_addend;
-
- switch (r_type)
- {
- case R_SH_COPY:
- if (sym == NULL)
- /* This can happen in trace mode if an object could not be
- found. */
- break;
- if (sym->st_size > refsym->st_size
- || (sym->st_size < refsym->st_size && GLRO(dl_verbose)))
- {
- const char *strtab;
-
- strtab = (const char *) D_PTR (map, l_info[DT_STRTAB]);
- _dl_error_printf ("\
-%s: Symbol `%s' has different size in shared object, consider re-linking\n",
- RTLD_PROGNAME, strtab + refsym->st_name);
- }
- memcpy (reloc_addr_arg, (void *) value,
- MIN (sym->st_size, refsym->st_size));
- break;
- case R_SH_GLOB_DAT:
- case R_SH_JMP_SLOT:
- /* These addresses are always aligned. */
- *reloc_addr = value;
- break;
- /* XXX Remove TLS relocations which are not needed. */
- case R_SH_TLS_DTPMOD32:
-#ifdef RTLD_BOOTSTRAP
- /* During startup the dynamic linker is always the module
- with index 1.
- XXX If this relocation is necessary move before RESOLVE
- call. */
- *reloc_addr = 1;
-#else
- /* Get the information from the link map returned by the
- resolv function. */
- if (sym_map != NULL)
- *reloc_addr = sym_map->l_tls_modid;
-#endif
- break;
- case R_SH_TLS_DTPOFF32:
-#ifndef RTLD_BOOTSTRAP
- /* During relocation all TLS symbols are defined and used.
- Therefore the offset is already correct. */
- if (sym != NULL)
- *reloc_addr = sym->st_value;
-#endif
- break;
- case R_SH_TLS_TPOFF32:
- /* The offset is positive, afterward from the thread pointer. */
-#ifdef RTLD_BOOTSTRAP
- *reloc_addr = map->l_tls_offset + sym->st_value + reloc->r_addend;
-#else
- /* We know the offset of object the symbol is contained in.
- It is a positive value which will be added to the thread
- pointer. To get the variable position in the TLS block
- we add the offset from that of the TLS block. */
- if (sym != NULL)
- {
- CHECK_STATIC_TLS (map, sym_map);
- *reloc_addr = sym_map->l_tls_offset + sym->st_value
- + reloc->r_addend;
- }
-#endif
- break;
- case R_SH_DIR32:
- {
-#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
- /* This is defined in rtld.c, but nowhere in the static
- libc.a; make the reference weak so static programs can
- still link. This declaration cannot be done when
- compiling rtld.c (i.e. #ifdef RTLD_BOOTSTRAP) because
- rtld.c contains the common defn for _dl_rtld_map, which
- is incompatible with a weak decl in the same file. */
-# ifndef SHARED
- weak_extern (_dl_rtld_map);
-# endif
- if (map == &GL(dl_rtld_map))
- /* Undo the relocation done here during bootstrapping.
- Now we will relocate it anew, possibly using a
- binding found in the user program or a loaded library
- rather than the dynamic linker's built-in definitions
- used while loading those libraries. */
- value -= map->l_addr + refsym->st_value + reloc->r_addend;
-#endif
- COPY_UNALIGNED_WORD (&value, reloc_addr_arg,
- (int) reloc_addr_arg & 3);
- break;
- }
- case R_SH_REL32:
- value = (value - (Elf32_Addr) reloc_addr);
- COPY_UNALIGNED_WORD (&value, reloc_addr_arg,
- (int) reloc_addr_arg & 3);
- break;
- default:
- _dl_reloc_bad_type (map, r_type, 0);
- break;
- }
- }
-}
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
- void *const reloc_addr_arg)
-{
- Elf32_Addr value;
-
- if (reloc->r_addend)
- value = l_addr + reloc->r_addend;
- else
- {
- COPY_UNALIGNED_WORD (reloc_addr_arg, &value, (int) reloc_addr_arg & 3);
- value += l_addr;
- }
- COPY_UNALIGNED_WORD (&value, reloc_addr_arg, (int) reloc_addr_arg & 3);
-
-#undef COPY_UNALIGNED_WORD
-}
-
-auto inline void
-__attribute__ ((always_inline))
-elf_machine_lazy_rel (struct link_map *map,
- Elf32_Addr l_addr, const Elf32_Rela *reloc,
- int skip_ifunc)
-{
- Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
- /* Check for unexpected PLT reloc type. */
- if (ELF32_R_TYPE (reloc->r_info) == R_SH_JMP_SLOT)
- {
- if (__builtin_expect (map->l_mach.plt, 0) == 0)
- *reloc_addr += l_addr;
- else
- *reloc_addr =
- map->l_mach.plt
- + (((Elf32_Addr) reloc_addr) - map->l_mach.gotplt) * 7;
- }
- else
- _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1);
-}
-
-#endif /* RESOLVE_MAP */
diff --git a/sysdeps/sh/dl-tls.h b/sysdeps/sh/dl-tls.h
deleted file mode 100644
index 3f094a77a0..0000000000
--- a/sysdeps/sh/dl-tls.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. SH version.
- Copyright (C) 2002-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-
-/* Type used for the representation of TLS information in the GOT. */
-typedef struct
-{
- unsigned long int ti_module;
- unsigned long int ti_offset;
-} tls_index;
-
-
-extern void *__tls_get_addr (tls_index *ti);
diff --git a/sysdeps/sh/dl-trampoline.S b/sysdeps/sh/dl-trampoline.S
deleted file mode 100644
index 3dfed100b2..0000000000
--- a/sysdeps/sh/dl-trampoline.S
+++ /dev/null
@@ -1,430 +0,0 @@
-/* PLT trampolines. SH version.
- Copyright (C) 2005-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
- .text
- .globl _dl_runtime_resolve
- .type _dl_runtime_resolve, @function
- cfi_startproc
- .align 5
-_dl_runtime_resolve:
- mov.l r2,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r3,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r4,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r5,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r6,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r7,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r12,@-r15
- cfi_adjust_cfa_offset (4)
- sts.l macl,@-r15
- cfi_adjust_cfa_offset (4)
- sts.l mach,@-r15
- cfi_adjust_cfa_offset (4)
- movt r3 ! Save T flag.
- mov.l r3,@-r15
- cfi_adjust_cfa_offset (4)
-#ifdef HAVE_FPU
- sts.l fpscr,@-r15
- cfi_adjust_cfa_offset (4)
- mov #8,r3
- swap.w r3,r3
- lds r3,fpscr
- fmov.s fr11,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr10,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr9,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr8,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr7,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr6,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr5,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr4,@-r15
- cfi_adjust_cfa_offset (4)
-#endif
- sts.l pr,@-r15
- cfi_adjust_cfa_offset (4)
- tst r0,r0
- bt 1f
- mov r0,r2
-1:
- mov r0,r4 ! PLT type
- mov r2,r5 ! link map address
-#ifdef SHARED
- mov.l 2f,r2
- mova 2f,r0
- add r0,r2 ! Get GOT address in r2
- mov.l 3f,r0
- add r2,r0
-#else
- mov.l 3f,r0
-#endif
- jsr @r0 ! Call resolver.
- mov r1,r6 ! reloc offset
- lds.l @r15+,pr ! Get register content back.
- cfi_adjust_cfa_offset (-4)
-#ifdef HAVE_FPU
- fmov.s @r15+,fr4
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr5
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr6
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr7
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr8
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr9
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr10
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr11
- cfi_adjust_cfa_offset (-4)
- lds.l @r15+,fpscr
- cfi_adjust_cfa_offset (-4)
-#endif
- mov.l @r15+,r3
- cfi_adjust_cfa_offset (-4)
- shal r3 ! Lode T flag.
- lds.l @r15+,mach
- cfi_adjust_cfa_offset (-4)
- lds.l @r15+,macl
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r12
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r7
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r6
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r5
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r4
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r3
- cfi_adjust_cfa_offset (-4)
- jmp @r0 ! Jump to function address.
- mov.l @r15+,r2
- cfi_adjust_cfa_offset (-4)
- .align 2
-#ifdef SHARED
-2: .long _GLOBAL_OFFSET_TABLE_
-3: .long _dl_fixup@GOTOFF
-#else
-3: .long _dl_fixup
-#endif
- cfi_endproc
- .size _dl_runtime_resolve, .-_dl_runtime_resolve
-
-
- .globl _dl_runtime_profile
- .type _dl_runtime_profile,@function
- cfi_startproc
- .align 5
-_dl_runtime_profile:
- mov.l r12,@-r15
- cfi_adjust_cfa_offset (4)
-#ifdef HAVE_FPU
- sts.l fpscr,@-r15
- cfi_adjust_cfa_offset (4)
- mov #8,r12
- swap.w r12,r12
- lds r12,fpscr
- fmov.s fr11,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr10,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr9,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr8,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr7,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr6,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr5,@-r15
- cfi_adjust_cfa_offset (4)
- fmov.s fr4,@-r15
- cfi_adjust_cfa_offset (4)
-#else
- add #-36,r15
- cfi_adjust_cfa_offset (36)
-#endif
- mov.l r7,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r6,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r5,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r4,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r3,@-r15
- cfi_adjust_cfa_offset (4)
- mov.l r2,@-r15
- cfi_adjust_cfa_offset (4)
- sts.l macl,@-r15
- cfi_adjust_cfa_offset (4)
- sts.l mach,@-r15
- cfi_adjust_cfa_offset (4)
- movt r3 ! Save T flag.
- mov.l r3,@-r15
- cfi_adjust_cfa_offset (4)
- sts.l pr,@-r15
- cfi_adjust_cfa_offset (4)
- tst r0,r0
- bt 1f
- mov r0,r2
-1:
- mov r0,r4 ! PLT type
- mov r2,r5 ! link map address
- sts pr,r7 ! return address
- add #-24,r15
- cfi_adjust_cfa_offset (24)
- mov #40,r0
- add r15,r0
- mov.l r0,@r15 ! Address of the register structure
- mov #-1,r0
- mov.l r0,@(8,r15)
- mov #8,r0
- add r15,r0
- mov.l r0,@(4,r15)
- mov.l r5,@(12,r15)
- mov.l r1,@(16,r15)
-#ifdef SHARED
- mov.l 2f,r12
- mova 2f,r0
- add r0,r12 ! Get GOT address in r12
- mov.l 3f,r0
- add r12,r0
-#else
- mov.l 3f,r0
-#endif
- jsr @r0 ! Call resolver.
- mov r1,r6 ! reloc offset
- mov.l @(8,r15),r1
- cmp/pz r1
- bt 4f
- add #24,r15
- cfi_adjust_cfa_offset (-24)
- lds.l @r15+,pr ! Get register content back.
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r3
- cfi_adjust_cfa_offset (-4)
- shal r3 ! Lode T flag.
- lds.l @r15+,mach
- cfi_adjust_cfa_offset (-4)
- lds.l @r15+,macl
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r2
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r3
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r4
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r5
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r6
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r7
- cfi_adjust_cfa_offset (-4)
-#ifdef HAVE_FPU
- fmov.s @r15+,fr4
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr5
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr6
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr7
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr8
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr9
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr10
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr11
- cfi_adjust_cfa_offset (-4)
- lds.l @r15+,fpscr
- cfi_adjust_cfa_offset (-4)
-#else
- add #36,r15
- cfi_adjust_cfa_offset (-36)
-#endif
- jmp @r0 ! Jump to function address.
- mov.l @r15+,r12
- cfi_adjust_cfa_offset (-4)
- .align 2
-#ifdef SHARED
-2: .long _GLOBAL_OFFSET_TABLE_
-3: .long _dl_profile_fixup@GOTOFF
-#else
-3: .long _dl_profile_fixup
-#endif
-
- cfi_adjust_cfa_offset (104)
-4:
- mov #104,r3
- add r15,r3 ! Original stack
- mov.l r8,@(20,r15)
- cfi_rel_offset (r8, 20)
- mov r15,r8
- sub r1,r15
- shlr2 r15
- shll2 r15
- mov r15,r4
- shlr2 r1
- tst r1,r1
-5:
- bt/s 6f
- dt r1
- mov.l @r3+,r2
- mov.l r2,@r4
- bra 5b
- add #4,r4
-6:
- mov.l @r8,r12
- mov.l @r12+,r2
- mov.l @r12+,r3
- mov.l @r12+,r4
- mov.l @r12+,r5
- mov.l @r12+,r6
- mov.l @r12+,r7
-#ifdef HAVE_FPU
- fmov.s @r12+,fr4
- fmov.s @r12+,fr5
- fmov.s @r12+,fr6
- fmov.s @r12+,fr7
- fmov.s @r12+,fr8
- fmov.s @r12+,fr9
- fmov.s @r12+,fr10
- fmov.s @r12+,fr11
- lds.l @r12+,fpscr
-#else
- add #36,r2
-#endif
- jsr @r0 ! Call function.
- nop
- mov r8,r15
- mov.l @(12,r15),r4 ! link map address
- mov.l @(16,r15),r5 ! reloc offset
- mov.l @r15,r6 ! input registers
-#ifdef HAVE_FPU
- mov #16,r8
- add r15,r8
- fmov.s fr1,@-r8
- fmov.s fr0,@-r8
-#else
- mov #8,r8
- add r15,r8
-#endif
- mov.l r1,@-r8
- mov.l r0,@-r8
- mov.l @(20,r15),r8
- cfi_restore (r8)
-#ifdef SHARED
- mov.l 7f,r12
- mova 7f,r0
- add r0,r12 ! Get GOT address in r12
- mov.l 8f,r0
- add r12,r0
-#else
- mov.l 8f,r0
-#endif
- jsr @r0
- mov r15,r7 ! output registers
- mov.l @r15+,r0
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r1
- cfi_adjust_cfa_offset (-4)
-#ifdef HAVE_FPU
- fmov.s @r15+,fr0
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr1
- cfi_adjust_cfa_offset (-4)
- add #8,r15
- cfi_adjust_cfa_offset (-8)
-#else
- add #16,r15
- cfi_adjust_cfa_offset (-16)
-#endif
- lds.l @r15+,pr ! Get register content back.
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r3
- cfi_adjust_cfa_offset (-4)
- shal r3 ! Lode T flag.
- lds.l @r15+,mach
- cfi_adjust_cfa_offset (-4)
- lds.l @r15+,macl
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r2
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r3
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r4
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r5
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r6
- cfi_adjust_cfa_offset (-4)
- mov.l @r15+,r7
- cfi_adjust_cfa_offset (-4)
-#ifdef HAVE_FPU
- fmov.s @r15+,fr4
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr5
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr6
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr7
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr8
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr9
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr10
- cfi_adjust_cfa_offset (-4)
- fmov.s @r15+,fr11
- cfi_adjust_cfa_offset (-4)
- lds.l @r15+,fpscr
- cfi_adjust_cfa_offset (-4)
-#else
- add #36,r15
- cfi_adjust_cfa_offset (-36)
-#endif
- rts ! Jump to function address.
- mov.l @r15+,r12
- cfi_adjust_cfa_offset (-4)
- cfi_endproc
- .align 2
-#ifdef SHARED
-7: .long _GLOBAL_OFFSET_TABLE_
-8: .long _dl_call_pltexit@GOTOFF
-#else
-8: .long _dl_call_pltexit
-#endif
- .size _dl_runtime_profile, .-_dl_runtime_profile
diff --git a/sysdeps/sh/fpu_control.h b/sysdeps/sh/fpu_control.h
deleted file mode 100644
index df2627ad1e..0000000000
--- a/sysdeps/sh/fpu_control.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* FPU control word definitions. SH version.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _FPU_CONTROL_H
-#define _FPU_CONTROL_H
-
-#if !defined(__SH_FPU_ANY__)
-
-#define _FPU_RESERVED 0xffffffff
-#define _FPU_DEFAULT 0x00000000
-typedef unsigned int fpu_control_t;
-#define _FPU_GETCW(cw) (cw) = 0
-#define _FPU_SETCW(cw) (void) (cw)
-extern fpu_control_t __fpu_control;
-
-#else
-
-#include <features.h>
-
-/* masking of interrupts */
-#define _FPU_MASK_VM 0x0800 /* Invalid operation */
-#define _FPU_MASK_ZM 0x0400 /* Division by zero */
-#define _FPU_MASK_OM 0x0200 /* Overflow */
-#define _FPU_MASK_UM 0x0100 /* Underflow */
-#define _FPU_MASK_IM 0x0080 /* Inexact operation */
-
-/* rounding control */
-#define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */
-#define _FPU_RC_ZERO 0x1
-
-#define _FPU_RESERVED 0xffc00000 /* These bits are reserved. */
-
-/* The fdlibm code requires strict IEEE double precision arithmetic,
- and no interrupts for exceptions, rounding to nearest. */
-#define _FPU_DEFAULT 0x00080000 /* Default value. */
-#define _FPU_IEEE 0x00080f80 /* Default + exceptions enabled. */
-
-/* Type of the control word. */
-typedef unsigned int fpu_control_t;
-
-/* Macros for accessing the hardware control word. */
-#define _FPU_GETCW(cw) __asm__ ("sts fpscr,%0" : "=r" (cw))
-
-#if defined __GNUC__
-__BEGIN_DECLS
-
-/* GCC provides this function. */
-extern void __set_fpscr (unsigned long);
-#define _FPU_SETCW(cw) __set_fpscr ((cw))
-#else
-#define _FPU_SETCW(cw) __asm__ ("lds %0,fpscr" : : "r" (cw))
-#endif
-
-/* Default control word set at startup. */
-extern fpu_control_t __fpu_control;
-
-__END_DECLS
-
-#endif /* __SH_FPU_ANY__ */
-
-#endif /* _FPU_CONTROL_H */
diff --git a/sysdeps/sh/gccframe.h b/sysdeps/sh/gccframe.h
deleted file mode 100644
index e12a845e22..0000000000
--- a/sysdeps/sh/gccframe.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Definition of object in frame unwind info. sh version.
- Copyright (C) 2001-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define DWARF_FRAME_REGISTERS 49
-
-#include <sysdeps/generic/gccframe.h>
diff --git a/sysdeps/sh/gmp-mparam.h b/sysdeps/sh/gmp-mparam.h
deleted file mode 100644
index a579b48787..0000000000
--- a/sysdeps/sh/gmp-mparam.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright (C) 1991-2017 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2.1 of the License, or (at your
-option) any later version.
-
-The GNU MP 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 Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MP Library; see the file COPYING.LIB. If not, see
-<http://www.gnu.org/licenses/>. */
-
-#define BITS_PER_MP_LIMB 32
-#define BYTES_PER_MP_LIMB 4
-#define BITS_PER_LONGINT 32
-#define BITS_PER_INT 32
-#define BITS_PER_SHORTINT 16
-#define BITS_PER_CHAR 8
-
-#define IEEE_DOUBLE_BIG_ENDIAN 0
-#define IEEE_DOUBLE_MIXED_ENDIAN 1
diff --git a/sysdeps/sh/jmpbuf-offsets.h b/sysdeps/sh/jmpbuf-offsets.h
deleted file mode 100644
index fc5fae92c1..0000000000
--- a/sysdeps/sh/jmpbuf-offsets.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Private macros for accessing __jmp_buf contents. SH version.
- Copyright (C) 2006-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define JB_SIZE (4 * 15)
diff --git a/sysdeps/sh/jmpbuf-unwind.h b/sysdeps/sh/jmpbuf-unwind.h
deleted file mode 100644
index 8af8d0d44f..0000000000
--- a/sysdeps/sh/jmpbuf-unwind.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <setjmp.h>
-#include <stdint.h>
-#include <unwind.h>
-#include <sysdep.h>
-
-/* Test if longjmp to JMPBUF would unwind the frame
- containing a local variable at ADDRESS. */
-#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
- ((void *) (address) < (void *) demangle ((jmpbuf)[0].__regs[7]))
-
-#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
- _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
-
-static inline uintptr_t __attribute__ ((unused))
-_jmpbuf_sp (__jmp_buf regs)
-{
- void *sp = (void *) regs[0].__regs[7];
-#ifdef PTR_DEMANGLE
- PTR_DEMANGLE (sp);
-#endif
- return (uintptr_t) sp;
-}
-
-#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
- ((uintptr_t) (_address) - (_adj) < _jmpbuf_sp (_jmpbuf) - (_adj))
-
-/* We use the normal longjmp for unwinding. */
-#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
diff --git a/sysdeps/sh/ldsodefs.h b/sysdeps/sh/ldsodefs.h
deleted file mode 100644
index 68fd828aed..0000000000
--- a/sysdeps/sh/ldsodefs.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SH_LDSODEFS_H
-#define _SH_LDSODEFS_H 1
-
-#include <elf.h>
-
-struct La_sh_regs;
-struct La_sh_retval;
-
-#define ARCH_PLTENTER_MEMBERS \
- uintptr_t (*sh_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
- uintptr_t *, struct La_sh_regs *, \
- unsigned int *, const char *name, \
- long int *framesizep)
-
-#define ARCH_PLTEXIT_MEMBERS \
- unsigned int (*sh_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \
- uintptr_t *, const struct La_sh_regs *, \
- struct La_sh_retval *, const char *)
-
-#include_next <ldsodefs.h>
-
-#endif
diff --git a/sysdeps/sh/libc-tls.c b/sysdeps/sh/libc-tls.c
deleted file mode 100644
index 3fb6f057ee..0000000000
--- a/sysdeps/sh/libc-tls.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Thread-local storage handling in the ELF dynamic linker. SH version.
- Copyright (C) 2009-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <csu/libc-tls.c>
-#include <dl-tls.h>
-
-/* On SH, linker optimizations are not required, so __tls_get_addr
- can be called even in statically linked binaries. In this case module
- must be always 1 and PT_TLS segment exist in the binary, otherwise it
- would not link. */
-
-void *
-__tls_get_addr (tls_index *ti)
-{
- dtv_t *dtv = THREAD_DTV ();
- return (char *) dtv[1].pointer.val + ti->ti_offset;
-}
diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps
deleted file mode 100644
index a00f04e2a3..0000000000
--- a/sysdeps/sh/libm-test-ulps
+++ /dev/null
@@ -1,417 +0,0 @@
-# Begin of automatic generation
-
-# Maximal error of functions:
-Function: "acos_towardzero":
-float: 1
-ifloat: 1
-
-Function: "acosh":
-double: 1
-idouble: 1
-
-Function: "asin_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "asinh":
-double: 1
-float: 1
-ifloat: 1
-
-Function: "atan2":
-float: 1
-ifloat: 1
-
-Function: "atanh":
-float: 1
-ifloat: 1
-
-Function: Real part of "cacos":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Imaginary part of "cacos":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "cacosh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Imaginary part of "cacosh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "casin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "casin":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "casinh":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Imaginary part of "casinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catan":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "catan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "catanh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "catanh":
-float: 1
-ifloat: 1
-
-Function: "cbrt":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccos":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ccosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "cexp":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Imaginary part of "cexp":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: Real part of "clog":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "clog":
-float: 1
-ifloat: 1
-
-Function: Real part of "clog10":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Imaginary part of "clog10":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "cos":
-float: 1
-ifloat: 1
-
-Function: "cos_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "cosh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "cosh_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "cpow":
-double: 2
-float: 4
-idouble: 2
-ifloat: 4
-
-Function: Imaginary part of "cpow":
-float: 2
-ifloat: 2
-
-Function: Real part of "csin":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csinh":
-float: 1
-ifloat: 1
-
-Function: Imaginary part of "csinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "csqrt":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "csqrt":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Real part of "ctan":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "ctan":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Real part of "ctan_towardzero":
-double: 5
-float: 3
-idouble: 5
-ifloat: 3
-
-Function: Imaginary part of "ctan_towardzero":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-
-Function: Real part of "ctanh":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: Imaginary part of "ctanh":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: Real part of "ctanh_towardzero":
-double: 2
-float: 3
-idouble: 2
-ifloat: 3
-
-Function: Imaginary part of "ctanh_towardzero":
-double: 5
-float: 3
-idouble: 5
-ifloat: 3
-
-Function: "erf":
-double: 1
-idouble: 1
-
-Function: "erfc":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "exp10":
-double: 1
-idouble: 1
-
-Function: "exp10_towardzero":
-double: 1
-idouble: 1
-
-Function: "exp_towardzero":
-double: 1
-idouble: 1
-
-Function: "expm1":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "expm1_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "fma_towardzero":
-double: 1
-idouble: 1
-
-Function: "gamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "hypot":
-double: 1
-idouble: 1
-
-Function: "j0":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-
-Function: "j1":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "jn":
-double: 4
-float: 4
-idouble: 4
-ifloat: 4
-
-Function: "lgamma":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "log":
-float: 1
-ifloat: 1
-
-Function: "log10":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "log1p":
-float: 1
-ifloat: 1
-
-Function: "pow":
-float: 1
-ifloat: 1
-
-Function: "pow10":
-double: 1
-idouble: 1
-
-Function: "pow_towardzero":
-float: 1
-ifloat: 1
-
-Function: "sin":
-float: 1
-ifloat: 1
-
-Function: "sin_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "sincos":
-float: 1
-ifloat: 1
-
-Function: "sinh_towardzero":
-double: 1
-idouble: 1
-
-Function: "tan_towardzero":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: "tgamma":
-double: 4
-float: 3
-idouble: 4
-ifloat: 3
-
-Function: "y0":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
-Function: "y1":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-Function: "yn":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-# end of automatic generation
diff --git a/sysdeps/sh/libm-test-ulps-name b/sysdeps/sh/libm-test-ulps-name
deleted file mode 100644
index b6c67c9520..0000000000
--- a/sysdeps/sh/libm-test-ulps-name
+++ /dev/null
@@ -1 +0,0 @@
-SH
diff --git a/sysdeps/sh/linkmap.h b/sysdeps/sh/linkmap.h
deleted file mode 100644
index bb2fbb5f16..0000000000
--- a/sysdeps/sh/linkmap.h
+++ /dev/null
@@ -1,5 +0,0 @@
-struct link_map_machine
- {
- Elf32_Addr plt; /* Address of .plt + 36 */
- Elf32_Addr gotplt; /* Address of .got + 0x0c */
- };
diff --git a/sysdeps/sh/machine-gmon.h b/sysdeps/sh/machine-gmon.h
deleted file mode 100644
index 56e45bcdb4..0000000000
--- a/sysdeps/sh/machine-gmon.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Machine-dependent definitions for profiling support. SH version.
- Copyright (C) 1996-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* We must not pollute the global namespace. */
-#define mcount_internal __mcount_internal
-
-void mcount_internal (u_long frompc, u_long selfpc);
-
-#define _MCOUNT_DECL(frompc, selfpc) \
-void mcount_internal (u_long frompc, u_long selfpc)
-
-
-/* Define MCOUNT as empty since we have the implementation in another
- file. */
-#define MCOUNT
diff --git a/sysdeps/sh/math_private.h b/sysdeps/sh/math_private.h
deleted file mode 100644
index d13f2d49d3..0000000000
--- a/sysdeps/sh/math_private.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef SH_MATH_PRIVATE_H
-#define SH_MATH_PRIVATE_H 1
-
-/* Enable __finitel, __isinfl, and __isnanl for binary compatibility
- when built without long double support. */
-#define LDBL_CLASSIFY_COMPAT 1
-
-#include_next <math_private.h>
-
-#endif
diff --git a/sysdeps/sh/memcpy.S b/sysdeps/sh/memcpy.S
deleted file mode 100644
index c13afeaf24..0000000000
--- a/sysdeps/sh/memcpy.S
+++ /dev/null
@@ -1,198 +0,0 @@
-/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
- Optimized by Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* void *memcpy(void *dst, const void *src, size_t n);
- No overlap between the memory of DST and of SRC are assumed. */
-
-ENTRY(memcpy)
- mov r4,r3 /* Save destination. */
-
- /* If less than 11 bytes, just do a byte copy. */
- mov #11,r0
- cmp/gt r6,r0
- bt L_byteloop_init
-
- /* Check if we need to word-align source. */
- mov r5,r0
- tst #1,r0
- bt L_wordalign
-
- mov.b @r0+,r1 /* Copy one byte. */
- add #-1,r6
- mov.b r1,@r4
- add #1,r4
-
- .balignw 4,0x0009
-L_wordalign:
- /* Check if we need to longword-align source. */
- tst #2,r0
- bt L_copy
-
- mov.w @r0+,r1 /* Copy one word. */
- add #-2,r6
-#ifdef __BIG_ENDIAN__
- add #1,r4
- mov.b r1,@r4
- shlr8 r1
- mov.b r1,@-r4
- add #2,r4
-#else
- mov.b r1,@r4
- add #1,r4
- shlr8 r1
- mov.b r1,@r4
- add #1,r4
-#endif
-L_copy:
- mov r0,r5
-
- /* Calculate the correct routine to handle the destination
- alignment and simultaneously calculate the loop counts for
- both the 2 word copy loop and byte copy loop. */
- mova L_jumptable,r0
- mov r0,r1
- mov r4,r0
- mov r6,r7
- and #3,r0
- shlr2 r7
- shll r0
- shlr r7
- mov.w @(r0,r1),r2
- mov #7,r0
- braf r2
- and r0,r6
-L_base:
-
- .balign 4
-L_jumptable:
- .word L_copydest0 - L_base
- .word L_copydest1_or_3 - L_base
- .word L_copydest2 - L_base
- .word L_copydest1_or_3 - L_base
-
- .balign 4
- /* Copy routine for (dest mod 4) == 1 or == 3. */
-L_copydest1_or_3:
- add #-1,r4
- .balignw 4,0x0009
-L_copydest1_or_3_loop:
- mov.l @r5+,r0 /* Read first longword. */
- dt r7
- mov.l @r5+,r1 /* Read second longword. */
-#ifdef __BIG_ENDIAN__
- /* Write first longword as byte, word, byte. */
- mov.b r0,@(4,r4)
- shlr8 r0
- mov.w r0,@(2,r4)
- shlr16 r0
- mov.b r0,@(1,r4)
- mov r1,r0
- /* Write second longword as byte, word, byte. */
- mov.b r0,@(8,r4)
- shlr8 r0
- mov.w r0,@(6,r4)
- shlr16 r0
- mov.b r0,@(5,r4)
-#else
- /* Write first longword as byte, word, byte. */
- mov.b r0,@(1,r4)
- shlr8 r0
- mov.w r0,@(2,r4)
- shlr16 r0
- mov.b r0,@(4,r4)
- mov r1,r0
- /* Write second longword as byte, word, byte. */
- mov.b r0,@(5,r4)
- shlr8 r0
- mov.w r0,@(6,r4)
- shlr16 r0
- mov.b r0,@(8,r4)
-#endif
- bf/s L_copydest1_or_3_loop
- add #8,r4
-
- bra L_byteloop_init
- add #1,r4
-
- .balign 4
- /* Copy routine for (dest mod 4) == 2. */
-L_copydest2:
-L_copydest2_loop:
- mov.l @r5+,r0
- dt r7
- mov.l @r5+,r1
-#ifdef __BIG_ENDIAN__
- mov.w r0,@(2,r4)
- shlr16 r0
- mov.w r0,@r4
- mov r1,r0
- mov.w r0,@(6,r4)
- shlr16 r0
- mov.w r0,@(4,r4)
-#else
- mov.w r0,@r4
- shlr16 r0
- mov.w r0,@(2,r4)
- mov r1,r0
- mov.w r0,@(4,r4)
- shlr16 r0
- mov.w r0,@(6,r4)
-#endif
- bf/s L_copydest2_loop
- add #8,r4
-
- bra L_byteloop_init
- nop
-
- .balign 4
- /* Copy routine for (dest mod 4) == 0. */
-L_copydest0:
- add #-8,r4
- .balignw 4,0x0009
-L_copydest0_loop:
- mov.l @r5+,r0
- dt r7
- mov.l @r5+,r1
- add #8,r4
- mov.l r0,@r4
- bf/s L_copydest0_loop
- mov.l r1,@(4,r4)
-
- add #8,r4 /* Fall through. */
-
-L_byteloop_init:
- tst r6,r6
- bt L_exit
-
- .balignw 4,0x0009
- /* Copy remaining bytes. */
-L_byteloop:
- mov.b @r5+,r0
- dt r6
- mov.b r0,@r4
- bf/s L_byteloop
- add #1,r4
-
-L_exit:
- rts
- mov r3,r0 /* Return destination. */
-END(memcpy)
-libc_hidden_builtin_def (memcpy)
diff --git a/sysdeps/sh/memset.S b/sysdeps/sh/memset.S
deleted file mode 100644
index cb47e0c709..0000000000
--- a/sysdeps/sh/memset.S
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
- Optimized by Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* void *memset (t, c, len); */
-
-ENTRY(memset)
- mov #12,r0
- cmp/gt r6,r0
- bt.s L_byte_loop_init
- mov r4,r7
-
- extu.b r5,r5
- swap.b r5,r1
- or r1,r5
- swap.w r5,r1
- or r1,r5
-
- mov r4,r0
- tst #1,r0
- bt L_wordalign
-
- mov.b r5,@r4
- add #-1,r6
- add #1,r4
- mov r4,r0
-
- .balignw 4,0x0009
-L_wordalign:
- tst #2,r0
- bt L_word_loop_init
-
- mov.w r5,@r4
- add #-2,r6
- add #2,r4
- mov r4,r0
-
- .balignw 4,0x0009
-L_word_loop_init:
- mov r6,r3
- shlr2 r3
- mov #7,r0
- shlr r3
- and r0,r6
-
- .balignw 4,0x0009
-L_2word_loop:
- mov.l r5,@r4
- dt r3
- mov.l r5,@(4,r4)
- bf.s L_2word_loop
- add #8,r4
-
- .balignw 4,0x0009
-L_byte_loop_init:
- tst r6,r6
- bt L_byte_exit
-
- .balignw 4,0x0009
-L_byte_loop:
- mov.b r5,@r4
- dt r6
- bf.s L_byte_loop
- add #1,r4
-
- .balignw 4,0x0009
-L_byte_exit:
- rts
- mov r7,r0
-END(memset)
-libc_hidden_builtin_def (memset)
diff --git a/sysdeps/sh/memusage.h b/sysdeps/sh/memusage.h
deleted file mode 100644
index 1821c69485..0000000000
--- a/sysdeps/sh/memusage.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#define GETSP() ({ register uintptr_t stack_ptr asm ("r15"); stack_ptr; })
-
-#include <sysdeps/generic/memusage.h>
diff --git a/sysdeps/sh/nptl/bits/pthreadtypes-arch.h b/sysdeps/sh/nptl/bits/pthreadtypes-arch.h
deleted file mode 100644
index b2615fe314..0000000000
--- a/sysdeps/sh/nptl/bits/pthreadtypes-arch.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _BITS_PTHREADTYPES_ARCH_H
-#define _BITS_PTHREADTYPES_ARCH_H 1
-
-#include <endian.h>
-
-#define __SIZEOF_PTHREAD_ATTR_T 36
-#define __SIZEOF_PTHREAD_MUTEX_T 24
-#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-#define __SIZEOF_PTHREAD_COND_T 48
-#define __SIZEOF_PTHREAD_CONDATTR_T 4
-#define __SIZEOF_PTHREAD_RWLOCK_T 32
-#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-#define __SIZEOF_PTHREAD_BARRIER_T 20
-#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-
-/* Definitions for internal mutex struct. */
-#define __PTHREAD_COMPAT_PADDING_MID
-#define __PTHREAD_COMPAT_PADDING_END
-#define __PTHREAD_MUTEX_LOCK_ELISION 0
-
-#define __LOCK_ALIGNMENT
-#define __ONCE_ALIGNMENT
-
-struct __pthread_rwlock_arch_t
-{
- unsigned int __readers;
- unsigned int __writers;
- unsigned int __wrphase_futex;
- unsigned int __writers_futex;
- unsigned int __pad3;
- unsigned int __pad4;
-#if __BYTE_ORDER == __BIG_ENDIAN
- unsigned char __pad1;
- unsigned char __pad2;
- unsigned char __shared;
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
-#else
- /* FLAGS must stay at this position in the structure to maintain
- binary compatibility. */
- unsigned char __flags;
- unsigned char __shared;
- unsigned char __pad1;
- unsigned char __pad2;
-#endif
- unsigned long int __cur_writer;
-};
-
-#define __PTHREAD_RWLOCK_ELISION_EXTRA 0
-
-#endif /* bits/pthreadtypes.h */
diff --git a/sysdeps/sh/nptl/bits/semaphore.h b/sysdeps/sh/nptl/bits/semaphore.h
deleted file mode 100644
index 42a0836285..0000000000
--- a/sysdeps/sh/nptl/bits/semaphore.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-
-#define __SIZEOF_SEM_T 16
-
-
-/* Value returned if `sem_open' failed. */
-#define SEM_FAILED ((sem_t *) 0)
-
-
-typedef union
-{
- char __size[__SIZEOF_SEM_T];
- long int __align;
-} sem_t;
diff --git a/sysdeps/sh/nptl/pthread_spin_init.c b/sysdeps/sh/nptl/pthread_spin_init.c
deleted file mode 100644
index a1205b9698..0000000000
--- a/sysdeps/sh/nptl/pthread_spin_init.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
diff --git a/sysdeps/sh/nptl/pthread_spin_lock.c b/sysdeps/sh/nptl/pthread_spin_lock.c
deleted file mode 100644
index 3daa19d3f9..0000000000
--- a/sysdeps/sh/nptl/pthread_spin_lock.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include "pthreadP.h"
-
-int
-pthread_spin_lock (pthread_spinlock_t *lock)
-{
- unsigned int val;
-
- do
- asm volatile ("tas.b @%1; movt %0"
- : "=&r" (val)
- : "r" (lock)
- : "memory");
- while (val == 0);
-
- return 0;
-}
diff --git a/sysdeps/sh/nptl/pthread_spin_trylock.S b/sysdeps/sh/nptl/pthread_spin_trylock.S
deleted file mode 100644
index 524dbf9533..0000000000
--- a/sysdeps/sh/nptl/pthread_spin_trylock.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <pthread-errnos.h>
-
- .globl pthread_spin_trylock
- .type pthread_spin_trylock,@function
- .align 5
-pthread_spin_trylock:
- tas.b @r4
- bf/s 1f
- mov #EBUSY, r0
- mov #0, r0
-1:
- rts
- nop
- .size pthread_spin_trylock,.-pthread_spin_trylock
diff --git a/sysdeps/sh/nptl/pthread_spin_unlock.S b/sysdeps/sh/nptl/pthread_spin_unlock.S
deleted file mode 100644
index aabf1e463d..0000000000
--- a/sysdeps/sh/nptl/pthread_spin_unlock.S
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
- .globl pthread_spin_unlock
- .type pthread_spin_unlock,@function
- .align 5
-pthread_spin_unlock:
- mov #0,r0
- rts
- mov.l r0,@r4
- .size pthread_spin_unlock,.-pthread_spin_unlock
-
- /* The implementation of pthread_spin_init is identical. */
- .globl pthread_spin_init
-pthread_spin_init = pthread_spin_unlock
diff --git a/sysdeps/sh/nptl/pthreaddef.h b/sysdeps/sh/nptl/pthreaddef.h
deleted file mode 100644
index 327f090788..0000000000
--- a/sysdeps/sh/nptl/pthreaddef.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* Default stack size. */
-#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
-
-/* Required stack pointer alignment at beginning. */
-#define STACK_ALIGN 8
-
-/* Minimal stack size after allocating thread descriptor and guard size. */
-#define MINIMAL_REST_STACK 2048
-
-/* Alignment requirement for TCB. */
-#define TCB_ALIGNMENT 8
-
-
-/* Location of current stack frame. */
-#define CURRENT_STACK_FRAME __builtin_frame_address (0)
diff --git a/sysdeps/sh/nptl/tcb-offsets.sym b/sysdeps/sh/nptl/tcb-offsets.sym
deleted file mode 100644
index 4963e1506f..0000000000
--- a/sysdeps/sh/nptl/tcb-offsets.sym
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <sysdep.h>
-#include <tls.h>
-#include <kernel-features.h>
-
-RESULT offsetof (struct pthread, result)
-TID offsetof (struct pthread, tid)
-CANCELHANDLING offsetof (struct pthread, cancelhandling)
-CLEANUP_JMP_BUF offsetof (struct pthread, cleanup_jmp_buf)
-MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads)
-TLS_PRE_TCB_SIZE sizeof (struct pthread)
-MUTEX_FUTEX offsetof (pthread_mutex_t, __data.__lock)
-POINTER_GUARD offsetof (tcbhead_t, pointer_guard)
-#ifndef __ASSUME_PRIVATE_FUTEX
-PRIVATE_FUTEX offsetof (struct pthread, header.private_futex)
-#endif
diff --git a/sysdeps/sh/nptl/tls.h b/sysdeps/sh/nptl/tls.h
deleted file mode 100644
index 547cff179f..0000000000
--- a/sysdeps/sh/nptl/tls.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Definition for thread-local data handling. NPTL/SH version.
- Copyright (C) 2003-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _TLS_H
-#define _TLS_H
-
-# include <dl-sysdep.h>
-
-#ifndef __ASSEMBLER__
-# include <stdbool.h>
-# include <stddef.h>
-# include <stdint.h>
-# include <stdlib.h>
-# include <list.h>
-# include <sysdep.h>
-# include <dl-dtv.h>
-
-typedef struct
-{
- dtv_t *dtv;
- uintptr_t pointer_guard;
-} tcbhead_t;
-
-# define TLS_MULTIPLE_THREADS_IN_TCB 1
-
-#else /* __ASSEMBLER__ */
-# include <tcb-offsets.h>
-#endif /* __ASSEMBLER__ */
-
-
-#ifndef __ASSEMBLER__
-
-/* Get system call information. */
-# include <sysdep.h>
-
-/* This is the size of the initial TCB. */
-# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
-
-/* Alignment requirements for the initial TCB. */
-# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
-
-/* This is the size of the TCB. */
-# define TLS_TCB_SIZE sizeof (tcbhead_t)
-
-/* This is the size we need before TCB. */
-# define TLS_PRE_TCB_SIZE sizeof (struct pthread)
-
-/* Alignment requirements for the TCB. */
-# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-
-/* The TLS blocks start right after the TCB. */
-# define TLS_DTV_AT_TP 1
-# define TLS_TCB_AT_TP 0
-
-/* Get the thread descriptor definition. */
-# include <nptl/descr.h>
-
-/* Install the dtv pointer. The pointer passed is to the element with
- index -1 which contain the length. */
-# define INSTALL_DTV(tcbp, dtvp) \
- ((tcbhead_t *) (tcbp))->dtv = (dtvp) + 1
-
-/* Install new dtv for current thread. */
-# define INSTALL_NEW_DTV(dtv) \
- ({ tcbhead_t *__tcbp; \
- __asm __volatile ("stc gbr,%0" : "=r" (__tcbp)); \
- __tcbp->dtv = (dtv);})
-
-/* Return dtv of given thread descriptor. */
-# define GET_DTV(tcbp) \
- (((tcbhead_t *) (tcbp))->dtv)
-
-/* Code to initially initialize the thread pointer. This might need
- special attention since 'errno' is not yet available and if the
- operation can cause a failure 'errno' must not be touched. */
-# define TLS_INIT_TP(tcbp) \
- ({ __asm __volatile ("ldc %0,gbr" : : "r" (tcbp)); NULL; })
-
-# define TLS_DEFINE_INIT_TP(tp, pd) void *tp = (pd) + 1
-
-/* Return the address of the dtv for the current thread. */
-# define THREAD_DTV() \
- ({ tcbhead_t *__tcbp; \
- __asm __volatile ("stc gbr,%0" : "=r" (__tcbp)); \
- __tcbp->dtv;})
-
-/* Return the thread descriptor for the current thread.
- The contained asm must *not* be marked volatile since otherwise
- assignments like
- struct pthread *self = thread_self();
- do not get optimized away. */
-# define THREAD_SELF \
- ({ struct pthread *__self; \
- __asm ("stc gbr,%0" : "=r" (__self)); \
- __self - 1;})
-
-/* Magic for libthread_db to know how to do THREAD_SELF. */
-# define DB_THREAD_SELF \
- REGISTER (32, 32, REG_GBR * 4, -sizeof (struct pthread))
-
-/* Read member of the thread descriptor directly. */
-# define THREAD_GETMEM(descr, member) (descr->member)
-
-/* Same as THREAD_GETMEM, but the member offset can be non-constant. */
-# define THREAD_GETMEM_NC(descr, member, idx) (descr->member[idx])
-
-/* Set member of the thread descriptor directly. */
-# define THREAD_SETMEM(descr, member, value) \
- descr->member = (value)
-
-/* Same as THREAD_SETMEM, but the member offset can be non-constant. */
-# define THREAD_SETMEM_NC(descr, member, idx, value) \
- descr->member[idx] = (value)
-
-#define THREAD_GET_POINTER_GUARD() \
- ({ tcbhead_t *__tcbp; \
- __asm __volatile ("stc gbr,%0" : "=r" (__tcbp)); \
- __tcbp->pointer_guard;})
- #define THREAD_SET_POINTER_GUARD(value) \
- ({ tcbhead_t *__tcbp; \
- __asm __volatile ("stc gbr,%0" : "=r" (__tcbp)); \
- __tcbp->pointer_guard = (value);})
-#define THREAD_COPY_POINTER_GUARD(descr) \
- ({ tcbhead_t *__tcbp; \
- __asm __volatile ("stc gbr,%0" : "=r" (__tcbp)); \
- ((tcbhead_t *) (descr + 1))->pointer_guard = __tcbp->pointer_guard;})
-
-/* Get and set the global scope generation counter in struct pthread. */
-#define THREAD_GSCOPE_FLAG_UNUSED 0
-#define THREAD_GSCOPE_FLAG_USED 1
-#define THREAD_GSCOPE_FLAG_WAIT 2
-#define THREAD_GSCOPE_RESET_FLAG() \
- do \
- { int __res \
- = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \
- THREAD_GSCOPE_FLAG_UNUSED); \
- if (__res == THREAD_GSCOPE_FLAG_WAIT) \
- lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
- } \
- while (0)
-#define THREAD_GSCOPE_SET_FLAG() \
- do \
- { \
- THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \
- atomic_write_barrier (); \
- } \
- while (0)
-#define THREAD_GSCOPE_WAIT() \
- GL(dl_wait_lookup_done) ()
-
-#endif /* __ASSEMBLER__ */
-
-#endif /* tls.h */
diff --git a/sysdeps/sh/preconfigure b/sysdeps/sh/preconfigure
deleted file mode 100644
index c1f6537797..0000000000
--- a/sysdeps/sh/preconfigure
+++ /dev/null
@@ -1,6 +0,0 @@
-# preconfigure fragment for sh.
-
-case "$machine" in
-sh3*) base_machine=sh machine=sh/sh3 ;;
-sh4*) base_machine=sh machine=sh/sh4 ;;
-esac
diff --git a/sysdeps/sh/s_fma.c b/sysdeps/sh/s_fma.c
deleted file mode 100644
index d92438d448..0000000000
--- a/sysdeps/sh/s_fma.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifdef __SH_FPU_ANY__
-# include <sysdeps/ieee754/dbl-64/s_fma.c>
-#else
-# include <soft-fp/fmadf4.c>
-#endif
diff --git a/sysdeps/sh/s_fmaf.c b/sysdeps/sh/s_fmaf.c
deleted file mode 100644
index 3b811ae6da..0000000000
--- a/sysdeps/sh/s_fmaf.c
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifdef __SH_FPU_ANY__
-# include <sysdeps/ieee754/dbl-64/s_fmaf.c>
-#else
-# include <soft-fp/fmasf4.c>
-#endif
diff --git a/sysdeps/sh/sh3/__longjmp.S b/sysdeps/sh/sh3/__longjmp.S
deleted file mode 100644
index 27d6141a98..0000000000
--- a/sysdeps/sh/sh3/__longjmp.S
+++ /dev/null
@@ -1,63 +0,0 @@
-/* longjmp for SH.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
-/* __longjmp(jmpbuf, val) */
-
-ENTRY (__longjmp)
- mov.l @r4+, r8
- mov.l @r4+, r9
- mov.l @r4+, r10
- mov.l @r4+, r11
- mov.l @r4+, r12
- mov r5, r0 /* get the return value in place */
- tst r0, r0
- bf.s 1f
- mov.l @r4+, r13
- mov #1,r0 /* can't let setjmp() return zero! */
-1:
-#ifdef PTR_DEMANGLE
- mov.l @r4+, r2
- PTR_DEMANGLE (r2, r1)
- mov r2, r14
- mov.l @r4+, r2
- PTR_DEMANGLE2 (r2, r1)
-# ifdef CHECK_SP
- CHECK_SP (r2)
-# endif
- mov r2, r15
- mov.l @r4+, r2
- PTR_DEMANGLE2 (r2, r1)
- lds r2, pr
- mov #0, r1
-#else
- mov.l @r4+, r14
-# ifdef CHECK_SP
- mov.l @r4, r2
- CHECK_SP (r2)
-# endif
- mov.l @r4+, r15
- lds.l @r4+, pr
-#endif
- rts
- ldc.l @r4+, gbr
-END (__longjmp)
diff --git a/sysdeps/sh/sh3/setjmp.S b/sysdeps/sh/sh3/setjmp.S
deleted file mode 100644
index ef039a2114..0000000000
--- a/sysdeps/sh/sh3/setjmp.S
+++ /dev/null
@@ -1,81 +0,0 @@
-/* setjmp for SH3.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <jmpbuf-offsets.h>
-
-ENTRY (__sigsetjmp)
- /* Save registers */
- add #(JB_SIZE - 4 * 5), r4
- stc.l gbr, @-r4
-#ifdef PTR_MANGLE
- sts pr, r2
- PTR_MANGLE (r2, r1)
- mov.l r2, @-r4
- mov r15, r2
- PTR_MANGLE2 (r2, r1)
- mov.l r2, @-r4
- mov r14, r2
- PTR_MANGLE2 (r2, r1)
- mov.l r2, @-r4
- mov #0, r1
-#else
- sts.l pr, @-r4
- mov.l r15, @-r4
- mov.l r14, @-r4
-#endif
- mov.l r13, @-r4
- mov.l r12, @-r4
- mov.l r11, @-r4
- mov.l r10, @-r4
- mov.l r9, @-r4
- mov.l r8, @-r4
-
-#if IS_IN (rtld)
- /* In ld.so we never save the signal mask. */
- rts
- mov #0, r0
-#else
- /* Make a tail call to __sigjmp_save; it takes the same args. */
-# ifdef SHARED
- mov.l 1f, r1
- mova 1f, r0
- bra 2f
- add r1, r0
- .align 2
-1:
- .long _GLOBAL_OFFSET_TABLE_
-2:
- mov.l .L1, r1
- mov.l @(r0,r1), r1
- jmp @r1
- nop
- .align 2
-.L1:
- .long C_SYMBOL_NAME(__sigjmp_save@GOT)
-# else
- mov.l .L1, r1
- jmp @r1
- nop
- .align 2
-.L1:
- .long C_SYMBOL_NAME(__sigjmp_save)
-# endif
-#endif
-END (__sigsetjmp)
-hidden_def (__sigsetjmp)
diff --git a/sysdeps/sh/sh4/Makefile b/sysdeps/sh/sh4/Makefile
deleted file mode 100644
index ccac91432a..0000000000
--- a/sysdeps/sh/sh4/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-# Build everything with full IEEE math support. -mieee isn't
-# default for the older SH compilers.
-sysdep-CFLAGS += -mieee
diff --git a/sysdeps/sh/sh4/Versions b/sysdeps/sh/sh4/Versions
deleted file mode 100644
index 8cc1c7b7d4..0000000000
--- a/sysdeps/sh/sh4/Versions
+++ /dev/null
@@ -1,5 +0,0 @@
-ld {
- GLIBC_PRIVATE {
- __fpscr_values;
- }
-}
diff --git a/sysdeps/sh/sh4/__longjmp.S b/sysdeps/sh/sh4/__longjmp.S
deleted file mode 100644
index 2a5c25da32..0000000000
--- a/sysdeps/sh/sh4/__longjmp.S
+++ /dev/null
@@ -1,73 +0,0 @@
-/* longjmp for SH.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
-/* __longjmp(jmpbuf, val) */
-
-ENTRY (__longjmp)
- mov.l @r4+, r8
- mov.l @r4+, r9
- mov.l @r4+, r10
- mov.l @r4+, r11
- mov.l @r4+, r12
- mov r5, r0 /* get the return value in place */
- tst r0, r0
- bf.s 1f
- mov.l @r4+, r13
- mov #1,r0 /* can't let setjmp() return zero! */
-1:
-#ifdef PTR_DEMANGLE
- mov.l @r4+, r2
- PTR_DEMANGLE (r2, r1)
- mov r2, r14
- mov.l @r4+, r2
- PTR_DEMANGLE2 (r2, r1)
-# ifdef CHECK_SP
- CHECK_SP (r2)
-# endif
- mov r2, r15
- mov.l @r4+, r2
- PTR_DEMANGLE2 (r2, r1)
- lds r2, pr
- mov #0, r1
-#else
- mov.l @r4+, r14
-# ifdef CHECK_SP
- mov.l @r4, r2
- CHECK_SP (r2)
-# endif
- mov.l @r4+, r15
- lds.l @r4+, pr
-#endif
-#ifdef __SH_FPU_ANY__
- ldc.l @r4+, gbr
- lds.l @r4+, fpscr
- fmov.s @r4+, fr12
- fmov.s @r4+, fr13
- fmov.s @r4+, fr14
- rts
- fmov.s @r4+, fr15
-#else
- rts
- ldc.l @r4+, gbr
-#endif /* !__SH_FPU_ANY__ */
-END (__longjmp)
diff --git a/sysdeps/sh/sh4/dl-trampoline.S b/sysdeps/sh/sh4/dl-trampoline.S
deleted file mode 100644
index bd9bb7e5bd..0000000000
--- a/sysdeps/sh/sh4/dl-trampoline.S
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifdef __SH_FPU_ANY__
-# define HAVE_FPU
-#endif
-#include <sysdeps/sh/dl-trampoline.S>
diff --git a/sysdeps/sh/sh4/fpu/fclrexcpt.c b/sysdeps/sh/sh4/fpu/fclrexcpt.c
deleted file mode 100644
index 5a430f6655..0000000000
--- a/sysdeps/sh/sh4/fpu/fclrexcpt.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Clear given exceptions in current floating-point environment.
- Copyright (C) 1998-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-feclearexcept (int excepts)
-{
- fpu_control_t cw;
-
- /* Mask out unsupported bits/exceptions. */
- excepts &= FE_ALL_EXCEPT;
-
- /* Read the complete control word. */
- _FPU_GETCW (cw);
-
- /* Clear exception bits. */
- cw &= ~excepts;
-
- /* Put the new data in effect. */
- _FPU_SETCW (cw);
-
- return 0;
-}
-libm_hidden_def (feclearexcept)
diff --git a/sysdeps/sh/sh4/fpu/fedisblxcpt.c b/sysdeps/sh/sh4/fpu/fedisblxcpt.c
deleted file mode 100644
index 718ae70899..0000000000
--- a/sysdeps/sh/sh4/fpu/fedisblxcpt.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Disable floating-point exceptions.
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-fedisableexcept (int excepts)
-{
- fpu_control_t temp, old_exc;
-
- /* Get the current control register contents. */
- _FPU_GETCW (temp);
-
- old_exc = (temp >> 5) & FE_ALL_EXCEPT;
-
- excepts &= FE_ALL_EXCEPT;
-
- temp &= ~(excepts << 5);
- _FPU_SETCW (temp);
-
- return old_exc;
-}
diff --git a/sysdeps/sh/sh4/fpu/feenablxcpt.c b/sysdeps/sh/sh4/fpu/feenablxcpt.c
deleted file mode 100644
index d638714149..0000000000
--- a/sysdeps/sh/sh4/fpu/feenablxcpt.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Enable floating-point exceptions.
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-feenableexcept (int excepts)
-{
- fpu_control_t temp, old_flag;
-
- /* Get current exceptions. */
- _FPU_GETCW (temp);
-
- old_flag = (temp >> 5) & FE_ALL_EXCEPT;
- excepts &= FE_ALL_EXCEPT;
-
- temp |= excepts << 5;
- _FPU_SETCW (temp);
-
- return old_flag;
-}
diff --git a/sysdeps/sh/sh4/fpu/fegetenv.c b/sysdeps/sh/sh4/fpu/fegetenv.c
deleted file mode 100644
index 00945f1072..0000000000
--- a/sysdeps/sh/sh4/fpu/fegetenv.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Store current floating-point environment.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-__fegetenv (fenv_t *envp)
-{
- fpu_control_t temp;
- _FPU_GETCW (temp);
-
- envp->__fpscr = temp;
-
- return 0;
-}
-libm_hidden_def (__fegetenv)
-weak_alias (__fegetenv, fegetenv)
-libm_hidden_weak (fegetenv)
diff --git a/sysdeps/sh/sh4/fpu/fegetexcept.c b/sysdeps/sh/sh4/fpu/fegetexcept.c
deleted file mode 100644
index 4d1299e310..0000000000
--- a/sysdeps/sh/sh4/fpu/fegetexcept.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Get enabled floating-point exceptions.
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-fegetexcept (void)
-{
- fpu_control_t temp;
-
- /* Get current exceptions. */
- _FPU_GETCW (temp);
-
- return (temp >> 5) & FE_ALL_EXCEPT;
-}
diff --git a/sysdeps/sh/sh4/fpu/fegetmode.c b/sysdeps/sh/sh4/fpu/fegetmode.c
deleted file mode 100644
index e839a9b25f..0000000000
--- a/sysdeps/sh/sh4/fpu/fegetmode.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Store current floating-point control modes. SH4 version.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-fegetmode (femode_t *modep)
-{
- _FPU_GETCW (*modep);
- return 0;
-}
diff --git a/sysdeps/sh/sh4/fpu/fegetround.c b/sysdeps/sh/sh4/fpu/fegetround.c
deleted file mode 100644
index 4c97d23e12..0000000000
--- a/sysdeps/sh/sh4/fpu/fegetround.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Return current rounding direction.
- Copyright (C) 1998-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-__fegetround (void)
-{
- fpu_control_t cw;
-
- /* Get control word. */
- _FPU_GETCW (cw);
-
- return cw & 0x1;
-}
-libm_hidden_def (__fegetround)
-weak_alias (__fegetround, fegetround)
-libm_hidden_weak (fegetround)
diff --git a/sysdeps/sh/sh4/fpu/feholdexcpt.c b/sysdeps/sh/sh4/fpu/feholdexcpt.c
deleted file mode 100644
index b905e594cd..0000000000
--- a/sysdeps/sh/sh4/fpu/feholdexcpt.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Store current floating-point environment and clear exceptions.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-__feholdexcept (fenv_t *envp)
-{
- fpu_control_t temp;
-
- /* Store the environment. */
- _FPU_GETCW (temp);
- envp->__fpscr = temp;
-
- /* Clear the status flags. */
- temp &= ~FE_ALL_EXCEPT;
-
- /* Now set all exceptions to non-stop. */
- temp &= ~(FE_ALL_EXCEPT << 5);
-
- _FPU_SETCW (temp);
-
- /* Success. */
- return 0;
-}
-libm_hidden_def (__feholdexcept)
-weak_alias (__feholdexcept, feholdexcept)
-libm_hidden_weak (feholdexcept)
diff --git a/sysdeps/sh/sh4/fpu/fesetenv.c b/sysdeps/sh/sh4/fpu/fesetenv.c
deleted file mode 100644
index 8628c508e5..0000000000
--- a/sysdeps/sh/sh4/fpu/fesetenv.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Install given floating-point environment.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-__fesetenv (const fenv_t *envp)
-{
- if (envp == FE_DFL_ENV)
- _FPU_SETCW (_FPU_DEFAULT);
- else
- {
- fpu_control_t temp = envp->__fpscr;
- _FPU_SETCW (temp);
- }
- return 0;
-}
-libm_hidden_def (__fesetenv)
-weak_alias (__fesetenv, fesetenv)
-libm_hidden_weak (fesetenv)
diff --git a/sysdeps/sh/sh4/fpu/fesetexcept.c b/sysdeps/sh/sh4/fpu/fesetexcept.c
deleted file mode 100644
index ecfad75fff..0000000000
--- a/sysdeps/sh/sh4/fpu/fesetexcept.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Set given exception flags. SH4 version.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-fesetexcept (int excepts)
-{
- fpu_control_t temp;
-
- _FPU_GETCW (temp);
- temp |= (excepts & FE_ALL_EXCEPT);
- _FPU_SETCW (temp);
-
- return 0;
-}
diff --git a/sysdeps/sh/sh4/fpu/fesetmode.c b/sysdeps/sh/sh4/fpu/fesetmode.c
deleted file mode 100644
index d2b9e05128..0000000000
--- a/sysdeps/sh/sh4/fpu/fesetmode.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Install given floating-point control modes. SH4 version.
- Copyright (C) 2016-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-#define FPU_STATUS 0x3f07c
-
-int
-fesetmode (const femode_t *modep)
-{
- fpu_control_t fpscr;
-
- _FPU_GETCW (fpscr);
- fpscr &= FPU_STATUS;
- if (modep == FE_DFL_MODE)
- fpscr |= _FPU_DEFAULT;
- else
- fpscr |= *modep & ~FPU_STATUS;
- _FPU_SETCW (fpscr);
-
- return 0;
-}
diff --git a/sysdeps/sh/sh4/fpu/fesetround.c b/sysdeps/sh/sh4/fpu/fesetround.c
deleted file mode 100644
index 20acb7c5e9..0000000000
--- a/sysdeps/sh/sh4/fpu/fesetround.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Set current rounding direction.
- Copyright (C) 1998-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-__fesetround (int round)
-{
- fpu_control_t cw;
-
- if ((round & ~0x1) != 0)
- /* ROUND is no valid rounding mode. */
- return 1;
-
- /* Get current state. */
- _FPU_GETCW (cw);
-
- /* Set rounding bits. */
- cw &= ~0x1;
- cw |= round;
- /* Set new state. */
- _FPU_SETCW (cw);
-
- return 0;
-}
-libm_hidden_def (__fesetround)
-weak_alias (__fesetround, fesetround)
-libm_hidden_weak (fesetround)
diff --git a/sysdeps/sh/sh4/fpu/feupdateenv.c b/sysdeps/sh/sh4/fpu/feupdateenv.c
deleted file mode 100644
index 3b886a2235..0000000000
--- a/sysdeps/sh/sh4/fpu/feupdateenv.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Install given floating-point environment and raise exceptions.
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-__feupdateenv (const fenv_t *envp)
-{
- fpu_control_t temp;
-
- _FPU_GETCW (temp);
- temp = (temp & FE_ALL_EXCEPT);
-
- /* Raise the saved exception. Incidently for us the implementation
- defined format of the values in objects of type fexcept_t is the
- same as the ones specified using the FE_* constants. */
- __fesetenv (envp);
- __feraiseexcept ((int) temp);
-
- return 0;
-}
-libm_hidden_def (__feupdateenv)
-weak_alias (__feupdateenv, feupdateenv)
-libm_hidden_weak (feupdateenv)
diff --git a/sysdeps/sh/sh4/fpu/fgetexcptflg.c b/sysdeps/sh/sh4/fpu/fgetexcptflg.c
deleted file mode 100644
index 02fc3948bc..0000000000
--- a/sysdeps/sh/sh4/fpu/fgetexcptflg.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Store current representation for exceptions.
- Copyright (C) 2013-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-fegetexceptflag (fexcept_t *flagp, int excepts)
-{
- fpu_control_t temp;
-
- /* Get the current exceptions. */
- _FPU_GETCW (temp);
-
- /* We only save the relevant bits here. In particular, care has to be
- taken with the CAUSE bits, as an inadvertent restore later on could
- generate unexpected exceptions. */
-
- *flagp = temp & excepts & FE_ALL_EXCEPT;
-
- /* Success. */
- return 0;
-}
diff --git a/sysdeps/sh/sh4/fpu/fraiseexcpt.c b/sysdeps/sh/sh4/fpu/fraiseexcpt.c
deleted file mode 100644
index 4bd0eb9ef5..0000000000
--- a/sysdeps/sh/sh4/fpu/fraiseexcpt.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Raise given exceptions.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Nobuhiro Iwamatsu <iwamatsu@nigauri.org>, 2012.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <float.h>
-#include <fpu_control.h>
-#include <math.h>
-
-int
-__feraiseexcept (int excepts)
-{
- if (excepts == 0)
- return 0;
-
- /* Raise exceptions represented by EXPECTS. */
-
- if (excepts & FE_INEXACT)
- {
- double d = 1.0, x = 3.0;
- __asm__ __volatile__ ("fdiv %1, %0" : "+d" (d) : "d" (x));
- }
-
- if (excepts & FE_UNDERFLOW)
- {
- long double d = LDBL_MIN, x = 10;
- __asm__ __volatile__ ("fdiv %1, %0" : "+d" (d) : "d" (x));
- }
-
- if (excepts & FE_OVERFLOW)
- {
- long double d = LDBL_MAX;
- __asm__ __volatile__ ("fmul %0, %0" : "+d" (d) : "d" (d));
- }
-
- if (excepts & FE_DIVBYZERO)
- {
- double d = 1.0, x = 0.0;
- __asm__ __volatile__ ("fdiv %1, %0" : "+d" (d) : "d" (x));
- }
-
- if (excepts & FE_INVALID)
- {
- double d = HUGE_VAL, x = 0.0;
- __asm__ __volatile__ ("fmul %1, %0" : "+d" (d) : "d" (x));
- }
-
- {
- /* Restore flag fields. */
- fpu_control_t cw;
- _FPU_GETCW (cw);
- cw |= (excepts & FE_ALL_EXCEPT);
- _FPU_SETCW (cw);
- }
-
- return 0;
-}
-libm_hidden_def (__feraiseexcept)
-weak_alias (__feraiseexcept, feraiseexcept)
-libm_hidden_weak (feraiseexcept)
diff --git a/sysdeps/sh/sh4/fpu/fsetexcptflg.c b/sysdeps/sh/sh4/fpu/fsetexcptflg.c
deleted file mode 100644
index 3a6ea33c26..0000000000
--- a/sysdeps/sh/sh4/fpu/fsetexcptflg.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Set floating-point environment exception handling.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <math.h>
-#include <fpu_control.h>
-
-int
-fesetexceptflag (const fexcept_t *flagp, int excepts)
-{
- fpu_control_t temp;
-
- /* Get the current environment. */
- _FPU_GETCW (temp);
-
- /* Set the desired exception mask. */
- temp &= ~(excepts & FE_ALL_EXCEPT);
- temp |= (*flagp & excepts & FE_ALL_EXCEPT);
-
- /* Save state back to the FPU. */
- _FPU_SETCW (temp);
-
- return 0;
-}
diff --git a/sysdeps/sh/sh4/fpu/ftestexcept.c b/sysdeps/sh/sh4/fpu/ftestexcept.c
deleted file mode 100644
index fa2c011825..0000000000
--- a/sysdeps/sh/sh4/fpu/ftestexcept.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Test exception in current environment.
- Copyright (C) 1997-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv.h>
-#include <fpu_control.h>
-
-int
-fetestexcept (int excepts)
-{
- fpu_control_t temp;
-
- /* Get current exceptions. */
- _FPU_GETCW (temp);
-
- return temp & excepts & FE_ALL_EXCEPT;
-}
-libm_hidden_def (fetestexcept)
diff --git a/sysdeps/sh/sh4/setjmp.S b/sysdeps/sh/sh4/setjmp.S
deleted file mode 100644
index a09ffab627..0000000000
--- a/sysdeps/sh/sh4/setjmp.S
+++ /dev/null
@@ -1,90 +0,0 @@
-/* setjmp for SH4.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <jmpbuf-offsets.h>
-
-ENTRY (__sigsetjmp)
- /* Save registers */
-#ifdef __SH_FPU_ANY__
- add #JB_SIZE, r4
- fmov.s fr15, @-r4
- fmov.s fr14, @-r4
- fmov.s fr13, @-r4
- fmov.s fr12, @-r4
- sts.l fpscr, @-r4
-#else
- add #(JB_SIZE - 4 * 5), r4
-#endif /* __SH_FPU_ANY__ */
- stc.l gbr, @-r4
-#ifdef PTR_MANGLE
- sts pr, r2
- PTR_MANGLE (r2, r1)
- mov.l r2, @-r4
- mov r15, r2
- PTR_MANGLE2 (r2, r1)
- mov.l r2, @-r4
- mov r14, r2
- PTR_MANGLE2 (r2, r1)
- mov.l r2, @-r4
- mov #0, r1
-#else
- sts.l pr, @-r4
- mov.l r15, @-r4
- mov.l r14, @-r4
-#endif
- mov.l r13, @-r4
- mov.l r12, @-r4
- mov.l r11, @-r4
- mov.l r10, @-r4
- mov.l r9, @-r4
- mov.l r8, @-r4
-
-#if IS_IN (rtld)
- /* In ld.so we never save the signal mask. */
- rts
- mov #0, r0
-#else
- /* Make a tail call to __sigjmp_save; it takes the same args. */
-# ifdef SHARED
- mov.l 1f, r1
- mova 1f, r0
- bra 2f
- add r1, r0
- .align 2
-1:
- .long _GLOBAL_OFFSET_TABLE_
-2:
- mov.l .L1, r1
- mov.l @(r0,r1), r1
- jmp @r1
- nop
- .align 2
-.L1:
- .long C_SYMBOL_NAME(__sigjmp_save@GOT)
-# else
- mov.l .L1, r1
- jmp @r1
- nop
- .align 2
-.L1:
- .long C_SYMBOL_NAME(__sigjmp_save)
-# endif
-#endif
-END (__sigsetjmp)
-hidden_def (__sigsetjmp)
diff --git a/sysdeps/sh/soft-fp/sfp-machine.h b/sysdeps/sh/soft-fp/sfp-machine.h
deleted file mode 100644
index 81474e8a7c..0000000000
--- a/sysdeps/sh/soft-fp/sfp-machine.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#define _FP_W_TYPE_SIZE 32
-#define _FP_W_TYPE unsigned long
-#define _FP_WS_TYPE signed long
-#define _FP_I_TYPE long
-
-#define _FP_MUL_MEAT_S(R,X,Y) \
- _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_D(R,X,Y) \
- _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_Q(R,X,Y) \
- _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_MUL_MEAT_DW_S(R,X,Y) \
- _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_DW_D(R,X,Y) \
- _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
-#define _FP_MUL_MEAT_DW_Q(R,X,Y) \
- _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
-
-#define _FP_DIV_MEAT_S(R,X,Y) _FP_DIV_MEAT_1_loop(S,R,X,Y)
-#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
-#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
-
-#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
-#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1), -1
-#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
-#define _FP_NANSIGN_S 0
-#define _FP_NANSIGN_D 0
-#define _FP_NANSIGN_Q 0
-
-#define _FP_KEEPNANFRACP 1
-#define _FP_QNANNEGATEDP 0
-
-/* Someone please check this. */
-#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
- do { \
- if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
- && !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs)) \
- { \
- R##_s = Y##_s; \
- _FP_FRAC_COPY_##wc(R,Y); \
- } \
- else \
- { \
- R##_s = X##_s; \
- _FP_FRAC_COPY_##wc(R,X); \
- } \
- R##_c = FP_CLS_NAN; \
- } while (0)
-
-#define FP_EX_INVALID (1 << 6)
-#define FP_EX_DIVZERO (1 << 5)
-#define FP_EX_OVERFLOW (1 << 4)
-#define FP_EX_UNDERFLOW (1 << 3)
-#define FP_EX_INEXACT (1 << 2)
-
-#define _FP_TININESS_AFTER_ROUNDING 1
diff --git a/sysdeps/sh/sotruss-lib.c b/sysdeps/sh/sotruss-lib.c
deleted file mode 100644
index 152e502113..0000000000
--- a/sysdeps/sh/sotruss-lib.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Override generic sotruss-lib.c to define actual functions for SH.
- Copyright (C) 2013-2017 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#define HAVE_ARCH_PLTENTER
-#define HAVE_ARCH_PLTEXIT
-
-#include <elf/sotruss-lib.c>
-
-ElfW(Addr)
-la_sh_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)),
- unsigned int ndx __attribute__ ((unused)),
- uintptr_t *refcook, uintptr_t *defcook,
- La_sh_regs *regs, unsigned int *flags,
- const char *symname, long int *framesizep)
-{
- print_enter (refcook, defcook, symname,
- regs->lr_r4, regs->lr_r5, regs->lr_r6, *flags);
-
- /* No need to copy anything, we will not need the parameters in any case. */
- *framesizep = 0;
-
- return sym->st_value;
-}
-
-unsigned int
-la_sh_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
- uintptr_t *defcook,
- const struct La_sh_regs *inregs,
- struct La_sh_retval *outregs, const char *symname)
-{
- print_exit (refcook, defcook, symname, outregs->lrv_r0);
-
- return 0;
-}
diff --git a/sysdeps/sh/stackguard-macros.h b/sysdeps/sh/stackguard-macros.h
deleted file mode 100644
index 55a5771b62..0000000000
--- a/sysdeps/sh/stackguard-macros.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdint.h>
-
-extern uintptr_t __stack_chk_guard;
-#define STACK_CHK_GUARD __stack_chk_guard
-
-#define POINTER_CHK_GUARD THREAD_GET_POINTER_GUARD()
diff --git a/sysdeps/sh/stackinfo.h b/sysdeps/sh/stackinfo.h
deleted file mode 100644
index cdbb27113d..0000000000
--- a/sysdeps/sh/stackinfo.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-#include <elf.h>
-
-/* On SH the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-/* Default to an executable stack. PF_X can be overridden if PT_GNU_STACK is
- * present, but it is presumed absent. */
-#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/sh/start.S b/sysdeps/sh/start.S
deleted file mode 100644
index 0e6b90df9b..0000000000
--- a/sysdeps/sh/start.S
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Startup code for SH & ELF.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- In addition to the permissions in the GNU Lesser General Public
- License, the Free Software Foundation gives you unlimited
- permission to link the compiled version of this file with other
- programs, and to distribute those programs without any restriction
- coming from the use of this file. (The GNU Lesser General Public
- License restrictions do apply in other respects; for example, they
- cover modification of the file, and distribution when not linked
- into another program.)
-
- Note that people who make modified versions of this file are not
- obligated to grant this special exception for their modified
- versions; it is their choice whether to do so. The GNU Lesser
- General Public License gives permission to release a modified
- version without this exception; this exception also makes it
- possible to release a modified version which carries forward this
- exception.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This is the canonical entry point, usually the first thing in the text
- segment.
-
- Note that the code in the .init section has already been run.
- This includes _init and _libc_init
-
-
- At this entry point, most registers' values are unspecified, except:
-
- r4 Contains a function pointer to be registered with `atexit'.
- This is how the dynamic linker arranges to have DT_FINI
- functions called for shared libraries that have been loaded
- before this code runs.
-
- sp The stack contains the arguments and environment:
- 0(sp) argc
- 4(sp) argv[0]
- ...
- (4*argc)(sp) NULL
- (4*(argc+1))(sp) envp[0]
- ...
- NULL
-*/
-
- .text
- .globl _start
- .type _start,@function
-_start:
- /* Clear the frame pointer since this is the outermost frame. */
- mov #0, r14
-
- /* Pop argc off the stack and save a pointer to argv */
- mov.l @r15+,r5
- mov r15, r6
-
- /* Push the last arguments to main() onto the stack */
- mov.l r4,@-r15
- mov.l L_fini,r0
- mov.l r0,@-r15
-
- /* Set up the other arguments for main() that go in registers */
- mov.l L_main,r4
- mov.l L_init,r7
-
- /* __libc_start_main (main, argc, argv, init, fini, rtld_fini) */
-
- /* Let the libc call main and exit with its return code. */
- mov.l L_libc_start_main,r1
- jsr @r1
- nop
- /* should never get here....*/
- mov.l L_abort,r1
- jsr @r1
- nop
- .align 2
-L_main:
- .long main
-L_init:
- .long __libc_csu_init
-L_fini:
- .long __libc_csu_fini
-L_libc_start_main:
- .long __libc_start_main
-L_abort:
- .long abort
-/* Define a symbol for the first piece of initialized data. */
- .data
- .globl __data_start
-__data_start:
- .long 0
- .weak data_start
- data_start = __data_start
- .global __fpscr_values
-__fpscr_values:
- .long 0
- .long 0x80000
diff --git a/sysdeps/sh/strlen.S b/sysdeps/sh/strlen.S
deleted file mode 100644
index 8e0d53c471..0000000000
--- a/sysdeps/sh/strlen.S
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* size_t strlen (const char *s) */
-
-ENTRY(strlen)
- mov r4, r0
- and #3, r0
- tst r0, r0
- bt/s 1f
- mov #0, r2
-
- add #-1, r0
- shll2 r0
- shll r0
- braf r0
- nop
-
- mov.b @r4+, r1
- tst r1, r1
- bt 8f
- add #1, r2
-
- mov.b @r4+, r1
- tst r1, r1
- bt 8f
- add #1, r2
-
- mov.b @r4+, r1
- tst r1, r1
- bt 8f
- add #1, r2
-
-1:
- mov #0, r3
-2:
- mov.l @r4+, r1
- cmp/str r3, r1
- bf/s 2b
- add #4, r2
-
- add #-4, r2
-#ifdef __BIG_ENDIAN__
- swap.b r1, r1
- swap.w r1, r1
- swap.b r1, r1
-#endif
- extu.b r1, r0
- tst r0, r0
- bt/s 8f
- shlr8 r1
- add #1, r2
- extu.b r1, r0
- tst r0, r0
- bt/s 8f
- shlr8 r1
- add #1, r2
- extu.b r1, r0
- tst r0, r0
- bt 8f
- add #1, r2
-8:
- rts
- mov r2, r0
-END(strlen)
-libc_hidden_builtin_def (strlen)
diff --git a/sysdeps/sh/sysdep.h b/sysdeps/sh/sysdep.h
deleted file mode 100644
index 939c93144e..0000000000
--- a/sysdeps/sh/sysdep.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Assembler macros for SH.
- Copyright (C) 1999-2017 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdeps/generic/sysdep.h>
-
-#ifdef __ASSEMBLER__
-
-/* Syntactic details of assembler. */
-
-#define ALIGNARG(log2) log2
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-
-#ifdef SHARED
-#define PLTJMP(_x) _x##@PLT
-#else
-#define PLTJMP(_x) _x
-#endif
-
-
-/* Define an entry point visible from C. */
-#define ENTRY(name) \
- .globl C_SYMBOL_NAME(name); \
- .type C_SYMBOL_NAME(name),@function; \
- .align ALIGNARG(5); \
- C_LABEL(name) \
- cfi_startproc; \
- CALL_MCOUNT
-
-#undef END
-#define END(name) \
- cfi_endproc; \
- ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name))
-
-/* If compiled for profiling, call `mcount' at the start of each function. */
-#ifdef PROF
-#define CALL_MCOUNT \
- mov.l 1f,r1; \
- sts.l pr,@-r15; \
- cfi_adjust_cfa_offset (4); \
- cfi_rel_offset (pr, 0); \
- mova 2f,r0; \
- jmp @r1; \
- lds r0,pr; \
- .align 2; \
-1: .long mcount; \
-2: lds.l @r15+,pr; \
- cfi_adjust_cfa_offset (-4); \
- cfi_restore (pr)
-
-#else
-#define CALL_MCOUNT /* Do nothing. */
-#endif
-
-/* Since C identifiers are not normally prefixed with an underscore
- on this system, the asm identifier `syscall_error' intrudes on the
- C name space. Make sure we use an innocuous name. */
-#define syscall_error __syscall_error
-#define mcount _mcount
-
-#endif /* __ASSEMBLER__ */
diff --git a/sysdeps/sh/tininess.h b/sysdeps/sh/tininess.h
deleted file mode 100644
index 1db37790f8..0000000000
--- a/sysdeps/sh/tininess.h
+++ /dev/null
@@ -1 +0,0 @@
-#define TININESS_AFTER_ROUNDING 1
diff --git a/sysdeps/sh/tls-macros.h b/sysdeps/sh/tls-macros.h
deleted file mode 100644
index aa56b0a01f..0000000000
--- a/sysdeps/sh/tls-macros.h
+++ /dev/null
@@ -1,143 +0,0 @@
-#define TLS_LE(x) \
- ({ int *__l; void *__tp; \
- asm ("stc gbr,%1\n\t" \
- "mov.l 1f,%0\n\t" \
- "bra 2f\n\t" \
- " add %1,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tpoff\n\t" \
- "2:" \
- : "=r" (__l), "=r" (__tp)); \
- __l; })
-
-#ifdef PIC
-# define TLS_IE(x) \
- ({ int *__l; void *__tp; \
- register void *__gp __asm__("r12"); \
- asm ("mov.l 1f,r0\n\t" \
- "stc gbr,%1\n\t" \
- "mov.l @(r0,r12),%0\n\t" \
- "bra 2f\n\t" \
- " add %1,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@gottpoff\n\t" \
- "2:" \
- : "=r" (__l), "=r" (__tp) : "r" (__gp) : "r0"); \
- __l; })
-#else
-# define TLS_IE(x) \
- ({ int *__l; void *__tp; \
- asm ("mov.l r12,@-r15\n\t" \
- "mova 0f,r0\n\t" \
- "mov.l 0f,r12\n\t" \
- "add r0,r12\n\t" \
- "mov.l 1f,r0\n\t" \
- "stc gbr,%1\n\t" \
- "mov.l @(r0,r12),%0\n\t" \
- "bra 2f\n\t" \
- " add %1,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@gottpoff\n\t" \
- "0: .long _GLOBAL_OFFSET_TABLE_\n\t" \
- "2: mov.l @r15+,r12" \
- : "=r" (__l), "=r" (__tp) : : "r0"); \
- __l; })
-#endif
-
-#ifdef PIC
-# define TLS_LD(x) \
- ({ int *__l; \
- register void *__gp __asm__("r12"); \
- asm ("mov.l 1f,r4\n\t" \
- "mova 2f,r0\n\t" \
- "mov.l 2f,r1\n\t" \
- "add r0,r1\n\t" \
- "jsr @r1\n\t" \
- " add r12,r4\n\t" \
- "bra 4f\n\t" \
- " nop\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tlsldm\n\t" \
- "2: .long __tls_get_addr@plt\n\t" \
- "4: mov.l 3f,%0\n\t" \
- "bra 5f\n\t" \
- " add r0,%0\n\t" \
- ".align 2\n\t" \
- "3: .long " #x "@dtpoff\n\t" \
- "5:" \
- : "=r" (__l) : "r" (__gp) : "r0", "r1", "r2", "r3", "r4", "r5", \
- "r6", "r7", "pr", "t"); \
- __l; })
-#else
-# define TLS_LD(x) \
- ({ int *__l; \
- asm ("mov.l r12,@-r15\n\t" \
- "mova 0f,r0\n\t" \
- "mov.l 0f,r12\n\t" \
- "add r0,r12\n\t" \
- "mov.l 1f,r4\n\t" \
- "mova 2f,r0\n\t" \
- "mov.l 2f,r1\n\t" \
- "add r0,r1\n\t" \
- "jsr @r1\n\t" \
- " add r12,r4\n\t" \
- "bra 4f\n\t" \
- " nop\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tlsldm\n\t" \
- "2: .long __tls_get_addr@plt\n\t" \
- "0: .long _GLOBAL_OFFSET_TABLE_\n\t" \
- "4: mov.l 3f,%0\n\t" \
- "bra 5f\n\t" \
- " add r0,%0\n\t" \
- ".align 2\n\t" \
- "3: .long " #x "@dtpoff\n\t" \
- "5: mov.l @r15+,r12" \
- : "=r" (__l) : : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \
- "pr", "t"); \
- __l; })
-#endif
-
-#ifdef PIC
-# define TLS_GD(x) \
- ({ int *__l; \
- register void *__gp __asm__("r12"); \
- asm ("mov.l 1f,r4\n\t" \
- "mova 2f,r0\n\t" \
- "mov.l 2f,r1\n\t" \
- "add r0,r1\n\t" \
- "jsr @r1\n\t" \
- " add r12,r4\n\t" \
- "bra 3f\n\t" \
- " mov r0,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tlsgd\n\t" \
- "2: .long __tls_get_addr@plt\n\t" \
- "3:" \
- : "=r" (__l) : "r" (__gp) : "r0", "r1", "r2", "r3", "r4", "r5", \
- "r6", "r7", "pr", "t"); \
- __l; })
-#else
-# define TLS_GD(x) \
- ({ int *__l; \
- asm ("mov.l r12,@-r15\n\t" \
- "mova 0f,r0\n\t" \
- "mov.l 0f,r12\n\t" \
- "add r0,r12\n\t" \
- "mov.l 1f,r4\n\t" \
- "mova 2f,r0\n\t" \
- "mov.l 2f,r1\n\t" \
- "add r0,r1\n\t" \
- "jsr @r1\n\t" \
- " add r12,r4\n\t" \
- "bra 3f\n\t" \
- " mov r0,%0\n\t" \
- ".align 2\n\t" \
- "1: .long " #x "@tlsgd\n\t" \
- "2: .long __tls_get_addr@plt\n\t" \
- "0: .long _GLOBAL_OFFSET_TABLE_\n\t" \
- "3: mov.l @r15+,r12" \
- : "=r" (__l) : : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \
- "pr", "t"); \
- __l; })
-#endif
diff --git a/sysdeps/sh/tst-audit.h b/sysdeps/sh/tst-audit.h
deleted file mode 100644
index a7250a9817..0000000000
--- a/sysdeps/sh/tst-audit.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Definitions for testing PLT entry/exit auditing. SH version.
-
- Copyright (C) 2012-2017 Free Software Foundation, Inc.
-
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#define pltenter la_sh_gnu_pltenter
-#define pltexit la_sh_gnu_pltexit
-#define La_regs La_sh_regs
-#define La_retval La_sh_retval
-#define int_retval lrv_r0