aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sysdeps/am29k/ffs.c43
-rw-r--r--sysdeps/cris/Dist1
-rw-r--r--sysdeps/cris/Implies3
-rw-r--r--sysdeps/cris/Makefile44
-rw-r--r--sysdeps/cris/__longjmp.S38
-rw-r--r--sysdeps/cris/_mcount.S36
-rw-r--r--sysdeps/cris/bits/endian.h7
-rw-r--r--sysdeps/cris/bits/setjmp.h54
-rw-r--r--sysdeps/cris/bits/string.h26
-rw-r--r--sysdeps/cris/dl-machine.h391
-rw-r--r--sysdeps/cris/elf/start.S141
-rw-r--r--sysdeps/cris/machine-gmon.h28
-rw-r--r--sysdeps/cris/memcopy.h57
-rw-r--r--sysdeps/cris/memusage.h27
-rw-r--r--sysdeps/cris/setjmp.S66
-rw-r--r--sysdeps/cris/stackinfo.h28
-rw-r--r--sysdeps/cris/sysdep.h114
-rw-r--r--sysdeps/cris/wordcopy.c1
-rw-r--r--sysdeps/i860/memcopy.h33
-rw-r--r--sysdeps/i960/Implies3
-rw-r--r--sysdeps/i960/add_n.s21
-rw-r--r--sysdeps/i960/addmul_1.s26
-rw-r--r--sysdeps/i960/ffs.c46
-rw-r--r--sysdeps/i960/mul_1.s23
-rw-r--r--sysdeps/i960/sub_n.s21
-rw-r--r--sysdeps/m88k/add_n.s104
-rw-r--r--sysdeps/m88k/ffs.c45
-rw-r--r--sysdeps/m88k/m88100/add_n.S133
-rw-r--r--sysdeps/m88k/m88100/add_n.s103
-rw-r--r--sysdeps/m88k/m88100/mul_1.S127
-rw-r--r--sysdeps/m88k/m88100/mul_1.s128
-rw-r--r--sysdeps/m88k/m88100/sub_n.S134
-rw-r--r--sysdeps/m88k/m88100/sub_n.s104
-rw-r--r--sysdeps/m88k/m88110/add_n.S200
-rw-r--r--sysdeps/m88k/m88110/addmul_1.s61
-rw-r--r--sysdeps/m88k/m88110/mul_1.S80
-rw-r--r--sysdeps/m88k/m88110/mul_1.s59
-rw-r--r--sysdeps/m88k/m88110/sub_n.S276
-rw-r--r--sysdeps/m88k/mul_1.s127
-rw-r--r--sysdeps/m88k/sub_n.s106
-rw-r--r--sysdeps/standalone/Dist2
-rw-r--r--sysdeps/standalone/Subdirs4
-rw-r--r--sysdeps/standalone/arm/bits/errno.h65
-rw-r--r--sysdeps/standalone/arm/sysdep.c32
-rw-r--r--sysdeps/standalone/bits/errno.h59
-rw-r--r--sysdeps/standalone/brk.c66
-rw-r--r--sysdeps/standalone/close.c43
-rw-r--r--sysdeps/standalone/dirstream.h43
-rw-r--r--sysdeps/standalone/filedesc.h48
-rw-r--r--sysdeps/standalone/i386/Dist1
-rw-r--r--sysdeps/standalone/i386/force_cpu386/Dist1
-rw-r--r--sysdeps/standalone/i386/force_cpu386/Makefile26
-rw-r--r--sysdeps/standalone/i386/force_cpu386/_exit.c47
-rw-r--r--sysdeps/standalone/i386/force_cpu386/brdinit.c42
-rw-r--r--sysdeps/standalone/i386/force_cpu386/console.c163
-rw-r--r--sysdeps/standalone/i386/force_cpu386/strtsupp.S87
-rw-r--r--sysdeps/standalone/i386/force_cpu386/target.ld58
-rw-r--r--sysdeps/standalone/i386/i386.h326
-rw-r--r--sysdeps/standalone/i386/start.S338
-rw-r--r--sysdeps/standalone/i960/Dist1
-rw-r--r--sysdeps/standalone/i960/i960ca.h206
-rw-r--r--sysdeps/standalone/i960/nindy960/Makefile24
-rw-r--r--sysdeps/standalone/i960/nindy960/_exit.c55
-rw-r--r--sysdeps/standalone/i960/nindy960/brdinit.c64
-rw-r--r--sysdeps/standalone/i960/nindy960/console.c76
-rw-r--r--sysdeps/standalone/i960/start.S152
-rw-r--r--sysdeps/standalone/m68k/m68020/Dist1
-rw-r--r--sysdeps/standalone/m68k/m68020/m68020.h87
-rw-r--r--sysdeps/standalone/m68k/m68020/mvme135/Implies2
-rw-r--r--sysdeps/standalone/m68k/m68020/mvme136/Dist1
-rw-r--r--sysdeps/standalone/m68k/m68020/mvme136/Makefile23
-rw-r--r--sysdeps/standalone/m68k/m68020/mvme136/_exit.c50
-rw-r--r--sysdeps/standalone/m68k/m68020/mvme136/brdinit.c51
-rw-r--r--sysdeps/standalone/m68k/m68020/mvme136/console.c101
-rw-r--r--sysdeps/standalone/m68k/m68020/mvme136/mvme136.ld61
-rw-r--r--sysdeps/standalone/m68k/m68020/start.S172
-rw-r--r--sysdeps/standalone/open.c125
-rw-r--r--sysdeps/standalone/read.c86
-rw-r--r--sysdeps/standalone/standalone.h31
-rw-r--r--sysdeps/standalone/write.c73
-rw-r--r--sysdeps/unix/sysv/linux/cris/Dist5
-rw-r--r--sysdeps/unix/sysv/linux/cris/_G_config.h106
-rw-r--r--sysdeps/unix/sysv/linux/cris/bits/fcntl.h189
-rw-r--r--sysdeps/unix/sysv/linux/cris/bits/mman.h97
-rw-r--r--sysdeps/unix/sysv/linux/cris/brk.c44
-rw-r--r--sysdeps/unix/sysv/linux/cris/chown.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/clone.S88
-rw-r--r--sysdeps/unix/sysv/linux/cris/fchown.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/fcntl.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/fxstat.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/getegid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/geteuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/getgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/getgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/cris/getresgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/getresuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/getrlimit.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/getrlimit64.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/getuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/lchown.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/lockf64.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/lxstat.c2
-rw-r--r--sysdeps/unix/sysv/linux/cris/mmap.S68
-rw-r--r--sysdeps/unix/sysv/linux/cris/mmap64.S91
-rw-r--r--sysdeps/unix/sysv/linux/cris/msgctl.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/profil-counter.h26
-rw-r--r--sysdeps/unix/sysv/linux/cris/register-dump.h117
-rw-r--r--sysdeps/unix/sysv/linux/cris/semctl.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setegid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/seteuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setfsgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setfsuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setgroups.c2
-rw-r--r--sysdeps/unix/sysv/linux/cris/setregid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setresgid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setresuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setreuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setrlimit.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/setuid.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/shmctl.c1
-rw-r--r--sysdeps/unix/sysv/linux/cris/socket.S96
-rw-r--r--sysdeps/unix/sysv/linux/cris/sys/ucontext.h56
-rw-r--r--sysdeps/unix/sysv/linux/cris/syscall.S40
-rw-r--r--sysdeps/unix/sysv/linux/cris/sysdep.S66
-rw-r--r--sysdeps/unix/sysv/linux/cris/sysdep.h226
-rw-r--r--sysdeps/unix/sysv/linux/cris/vfork.S27
-rw-r--r--sysdeps/unix/sysv/linux/cris/xstat.c1
-rw-r--r--sysdeps/z8000/add_n.s53
-rw-r--r--sysdeps/z8000/gmp-mparam.h27
-rw-r--r--sysdeps/z8000/mul_1.s68
-rw-r--r--sysdeps/z8000/sub_n.s54
132 files changed, 0 insertions, 7537 deletions
diff --git a/sysdeps/am29k/ffs.c b/sysdeps/am29k/ffs.c
deleted file mode 100644
index 6f080db..0000000
--- a/sysdeps/am29k/ffs.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ffs -- find first set bit in a word, counted from least significant end.
- For Amd 290x0.
- Copyright (C) 1991, 1992, 1997, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Torbjorn Granlund (tege@sics.se).
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <bstring.h>
-
-#undef ffs
-
-#ifdef __GNUC__
-
-int
-__ffs (x)
- int x;
-{
- int cnt;
-
- asm ("clz %0,%1" : "=r" (cnt) : "r" (x & -x));
-
- return 32 - cnt;
-}
-weak_alias (__ffs, ffs)
-libc_hidden_builtin_def (ffs)
-
-#else
-#include <sysdeps/generic/ffs.c>
-#endif
diff --git a/sysdeps/cris/Dist b/sysdeps/cris/Dist
deleted file mode 100644
index cf1ffb6..0000000
--- a/sysdeps/cris/Dist
+++ /dev/null
@@ -1 +0,0 @@
-_mcount.S
diff --git a/sysdeps/cris/Implies b/sysdeps/cris/Implies
deleted file mode 100644
index 780c4e2..0000000
--- a/sysdeps/cris/Implies
+++ /dev/null
@@ -1,3 +0,0 @@
-wordsize-32
-ieee754/flt-32
-ieee754/dbl-64
diff --git a/sysdeps/cris/Makefile b/sysdeps/cris/Makefile
deleted file mode 100644
index 1ecb78c..0000000
--- a/sysdeps/cris/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (C) 1999, 2000, 2001 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, write to the Free
-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307 USA.
-
-# We don't support long doubles as a distinct type. We don't need to set
-# this variable; it's here mostly for documentational purposes.
-
-long-double-fcts = no
-
-# FIXME: Note that this is a machine-specific stub; profiling is not
-# implemented.
-ifeq ($(subdir),gmon)
-sysdep_routines += _mcount
-endif
-
-# FIXME: This test seems generally bogus. Wrong types in function calls
-# and assumes FE_TONEAREST is defined. Does it work somewhere?
-# Presumably it does, so let's settle for filtering it out target-wise
-# until it's agreed what should be done.
-ifeq ($(subdir),math)
-tests := $(filter-out test-fenv, $(tests))
-endif
-
-# PIC code must be assembled with special options, passed on by gcc when
-# given the -fpic option.
-ASFLAGS-.os = -fpic
-
-# Overflow occurs at 2**15/4 (8192) symbols. Glibc uses about 2000.
-# So use -fpic: smaller-size relocs; smaller, faster code.
-pic-ccflag = -fpic
diff --git a/sysdeps/cris/__longjmp.S b/sysdeps/cris/__longjmp.S
deleted file mode 100644
index cce27ca..0000000
--- a/sysdeps/cris/__longjmp.S
+++ /dev/null
@@ -1,38 +0,0 @@
-/* longjmp for CRIS.
- Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
- .syntax no_register_prefix
-
-/* Saving and restoring CCR is meaningless, so we don't do it. */
-ENTRY (__longjmp)
- /* Note that r10 = jmp_buf, r11 = retval. */
- move [r10+16*4],srp
- test.d r11
- beq 0f /* Already a 1 in place. */
- nop
- /* Offset for r9, the return value (see setjmp). */
- move.d r11,[r10+6*4]
-0:
- movem [r10],pc
-END (__longjmp)
diff --git a/sysdeps/cris/_mcount.S b/sysdeps/cris/_mcount.S
deleted file mode 100644
index a939131..0000000
--- a/sysdeps/cris/_mcount.S
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Machine-specific calling sequence for `mcount' profiling function for CRIS.
- Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* FIXME: This isn't implemented yet. This is just a machine-specific
- stub. Perhaps a real implementation can make use of it. */
-
-#include <sysdep.h>
-
-#undef CALL_MCOUNT
-#define CALL_MCOUNT
-
-ENTRY (_mcount)
- SETUP_PIC
- /* Sorry, isn't implemented yet.
- Can't call abort; that will recurse. Force SEGV instead. */
- test.d [99]
-1:
- ba 1b
- nop
-END (_mcount)
diff --git a/sysdeps/cris/bits/endian.h b/sysdeps/cris/bits/endian.h
deleted file mode 100644
index 034307e..0000000
--- a/sysdeps/cris/bits/endian.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* CRIS is little-endian. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/sysdeps/cris/bits/setjmp.h b/sysdeps/cris/bits/setjmp.h
deleted file mode 100644
index 0d7825b..0000000
--- a/sysdeps/cris/bits/setjmp.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1997, 1998 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* Define the machine-dependent type `jmp_buf', CRIS version. */
-
-/* Note that saving and restoring CCR has no meaning in user mode, so we
- don't actually do it; the slot is now reserved.
-
- jmp_buf[0] - PC
- jmp_buf[1] - SP (R14)
- jmp_buf[2] - R13
- jmp_buf[3] - R12
- jmp_buf[4] - R11
- jmp_buf[5] - R10
- jmp_buf[6] - R9
- jmp_buf[7] - R8
- jmp_buf[8] - R7
- jmp_buf[9] - R6
- jmp_buf[10] - R5
- jmp_buf[11] - R4
- jmp_buf[12] - R3
- jmp_buf[13] - R2
- jmp_buf[14] - R1
- jmp_buf[15] - R0
- jmp_buf[16] - SRP
- jmp_buf[17] - CCR */
-
-#ifndef _ASM
-typedef unsigned long int __jmp_buf[18];
-#endif
-
-#if defined (__USE_MISC) || defined (_ASM)
-#define JB_SP 1
-#endif
-
-/* Test if longjmp to JMPBUF would unwind the frame
- containing a local variable at ADDRESS. */
-#define _JMPBUF_UNWINDS(jmpbuf, address) \
- ((unsigned long int) (address) < (jmpbuf)[JB_SP])
diff --git a/sysdeps/cris/bits/string.h b/sysdeps/cris/bits/string.h
deleted file mode 100644
index fa893d3..0000000
--- a/sysdeps/cris/bits/string.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Optimized, inlined string functions. CRIS version.
- Copyright (C) 1997, 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _STRING_H
-# error "Never use <bits/string.h> directly; include <string.h> instead."
-#endif
-
-/* Currently the only purpose of this file is to tell the generic inline
- macros that unaligned memory access is possible. */
-#define _STRING_ARCH_unaligned 1
diff --git a/sysdeps/cris/dl-machine.h b/sysdeps/cris/dl-machine.h
deleted file mode 100644
index 368733e..0000000
--- a/sysdeps/cris/dl-machine.h
+++ /dev/null
@@ -1,391 +0,0 @@
-/* Machine-dependent ELF dynamic relocation inline functions. CRIS version.
- Copyright (C) 1996-2001, 2002, 2003 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef dl_machine_h
-#define dl_machine_h
-
-#define ELF_MACHINE_NAME "CRIS"
-
-#include <sys/param.h>
-
-#ifdef __PIC__
-# define CALL_FN(x) \
- "move.d $pc,$r9\n\t" \
- "add.d " #x " - .,$r9\n\t" \
- "jsr $r9"
-#else
-# define CALL_FN(x) "jsr " #x
-#endif
-
-/* Return nonzero iff ELF header is compatible with the running host. */
-
-static inline int
-elf_machine_matches_host (const Elf32_Ehdr *ehdr)
-{
- return ehdr->e_machine == EM_CRIS;
-}
-
-/* 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
-elf_machine_dynamic (void)
-{
- /* Don't just set this to an asm variable "r0" since that's not logical
- (like, the variable is uninitialized and the register is fixed) and
- may make GCC trip over itself doing register allocation. Yes, I'm
- paranoid. Why do you ask? */
- Elf32_Addr *got;
-
- __asm__ ("move.d $r0,%0" : "=rm" (got));
- return *got;
-}
-
-/* Return the run-time load address of the shared object. We do it like
- m68k and i386, by taking an arbitrary local symbol, forcing a GOT entry
- for it, and peeking into the GOT table, which is set to the link-time
- file-relative symbol value (regardless of whether the target is REL or
- RELA). We subtract this link-time file-relative value from the "local"
- value we calculate from GOT position and GOT offset. FIXME: Perhaps
- there's some other symbol we could use, that we don't *have* to force a
- GOT entry for. */
-
-static inline Elf32_Addr
-elf_machine_load_address (void)
-{
- Elf32_Addr gotaddr_diff;
- __asm__ ("sub.d [$r0+_dl_start:GOT16],$r0,%0\n\t"
- "add.d _dl_start:GOTOFF,%0" : "=r" (gotaddr_diff));
- return gotaddr_diff;
-}
-
-/* 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
-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 push an offset into the .rela.plt section, push
- _GLOBAL_OFFSET_TABLE_[1], and then jump to
- _GLOBAL_OFFSET_TABLE_[2]. */
- got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
- 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 (__builtin_expect (profile, 0))
- {
- got[2] = (Elf32_Addr) &_dl_runtime_profile;
-
- if (_dl_name_match_p (GL(dl_profile), l))
- {
- /* This is the object we are looking for. Say that we really
- want profiling and the timers are started. */
- 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;
-}
-
-/* This code is used in dl-runtime.c to call the `fixup' function
- and then redirect to the address it returns.
-
- We get here with the offset into the relocation table pushed on stack,
- and the link map in MOF. */
-
-#define TRAMPOLINE_TEMPLATE(tramp_name, fixup_name) \
-"; Trampoline for " #fixup_name "\n\
- .globl " #tramp_name "\n\
- .type " #tramp_name ", @function\n\
-" #tramp_name ":\n\
- push $r13\n\
- push $r12\n\
- push $r11\n\
- push $r10\n\
- push $r9\n\
- push $srp\n\
- move.d [$sp+6*4],$r11\n\
- move $mof,$r10\n\
- " CALL_FN (fixup_name) "\n\
- move.d $r10,[$sp+6*4]\n\
- pop $srp\n\
- pop $r9\n\
- pop $r10\n\
- pop $r11\n\
- pop $r12\n\
- pop $r13\n\
- jump [$sp+]\n\
- .size " #tramp_name ", . - " #tramp_name "\n"
-#ifndef PROF
-#define ELF_MACHINE_RUNTIME_TRAMPOLINE \
-asm (TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup) \
- TRAMPOLINE_TEMPLATE (_dl_runtime_profile, profile_fixup));
-#else
-#define ELF_MACHINE_RUNTIME_TRAMPOLINE \
-asm (TRAMPOLINE_TEMPLATE (_dl_runtime_resolve, fixup) \
- ".globl _dl_runtime_profile\n" \
- ".set _dl_runtime_profile, _dl_runtime_resolve");
-#endif
-
-
-/* Mask identifying addresses reserved for the user program,
- where the dynamic linker should not map anything. */
-#define ELF_MACHINE_USER_ADDRESS_MASK 0xf8000000UL
-
-/* 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\
- .type _start,@function\n\
-_start:\n\
- move.d $sp,$r10\n\
- " CALL_FN (_dl_start) "\n\
- /* FALLTHRU */\n\
-\n\
- .globl _dl_start_user\n\
- .type _dl_start_user,@function\n\
-_dl_start_user:\n\
- ; Save the user entry point address in R1.\n\
- move.d $r10,$r1\n\
- ; Point R0 at the GOT.\n\
- move.d $pc,$r0\n\
- sub.d .:GOTOFF,$r0\n\
- ; See if we were run as a command with the executable file\n\
- ; name as an extra leading argument.\n\
- move.d [$r0+_dl_skip_args:GOT16],$r13\n\
- move.d [$r13],$r9\n\
- ; Get the original argument count\n\
- move.d [$sp],$r11\n\
- ; Subtract _dl_skip_args from it.\n\
- sub.d $r9,$r11\n\
- ; Adjust the stack pointer to skip _dl_skip_args words.\n\
- addi $r9.d,$sp\n\
- ; Put the new argc in place as expected by the user entry.\n\
- move.d $r11,[$sp]\n\
- ; Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\
- ; env: skip scaled argc and skip stored argc and NULL at end of argv[].\n\
- move.d $sp,$r13\n\
- addi $r11.d,$r13\n\
- addq 8,$r13\n\
- ; argv: skip stored argc.\n\
- move.d $sp,$r12\n\
- addq 4,$r12\n\
- ; main_map: at _dl_loaded.\n\
- move.d [$r0+_rtld_local:GOT16],$r9\n\
- move.d [$r9],$r10\n\
- move.d _dl_init_internal:PLTG,$r9\n\
- add.d $r0,$r9\n\
- jsr $r9\n\
- ; Pass our finalizer function to the user in R10.\n\
- move.d [$r0+_dl_fini:GOT16],$r10\n\
- ; Terminate the frame-pointer.\n\
- moveq 0,$r8\n\
- ; Cause SEGV if user entry returns.\n\
- move $r8,$srp\n\
- ; Jump to the user's entry point.\n\
- jump $r1\n\
- .size _dl_start_user, . - _dl_start_user\n\
- .previous");
-
-/* The union of reloc-type-classes where the reloc TYPE is a member.
-
- TYPE is in the class ELF_RTYPE_CLASS_PLT if it can describe a
- relocation for a PLT entry, that is, for which a PLT entry should not
- be allowed to define the value. The GNU linker for CRIS can merge a
- .got.plt entry (R_CRIS_JUMP_SLOT) with a .got entry (R_CRIS_GLOB_DAT),
- so we need to match both these reloc types.
-
- TYPE is in the class ELF_RTYPE_CLASS_NOCOPY if it 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_CRIS_JUMP_SLOT)) \
- || ((type) == R_CRIS_GLOB_DAT)) * ELF_RTYPE_CLASS_PLT) \
- | (((type) == R_CRIS_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_CRIS_JUMP_SLOT
-
-/* CRIS never uses Elf32_Rel relocations. */
-#define ELF_MACHINE_NO_REL 1
-
-/* 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 (GL(dl_platform) != NULL && *GL(dl_platform) == '\0')
- /* Avoid an empty string which would disturb us. */
- GL(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;
-}
-
-#endif /* !dl_machine_h */
-
-#ifdef RESOLVE
-
-/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
- MAP is the object containing the reloc. */
-
-static inline void
-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)
-{
- Elf32_Addr *const reloc_addr = reloc_addr_arg;
- const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
-
- if (__builtin_expect (r_type == R_CRIS_RELATIVE, 0))
- *reloc_addr = map->l_addr + reloc->r_addend;
- else
- {
-#ifndef RTLD_BOOTSTRAP
- const Elf32_Sym *const refsym = sym;
-#endif
- Elf32_Addr value;
- if (sym->st_shndx != SHN_UNDEF
- && ELF32_ST_BIND (sym->st_info) == STB_LOCAL)
- value = map->l_addr;
- else
- {
- value = RESOLVE (&sym, version, r_type);
- if (sym)
- value += sym->st_value;
- }
- value += reloc->r_addend; /* Assume copy relocs have zero addend. */
-
- switch (r_type)
- {
-#ifndef RTLD_BOOTSTRAP
- case R_CRIS_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
- || (GL(dl_verbose) && sym->st_size < refsym->st_size))
- {
- const char *strtab;
-
- strtab = (const void *) 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 ?: "<program name unknown>",
- strtab + refsym->st_name);
- }
- memcpy (reloc_addr_arg, (void *) value,
- MIN (sym->st_size, refsym->st_size));
- break;
-
- case R_CRIS_32:
-#endif
- case R_CRIS_GLOB_DAT:
- case R_CRIS_JUMP_SLOT:
- *reloc_addr = value;
- break;
-#ifndef RTLD_BOOTSTRAP
- case R_CRIS_8:
- *(char *) reloc_addr = value;
- break;
- case R_CRIS_16:
- *(short *) reloc_addr = value;
- break;
- case R_CRIS_8_PCREL:
- *(char *) reloc_addr
- = value + reloc->r_addend - (Elf32_Addr) reloc_addr - 1;
- break;
- case R_CRIS_16_PCREL:
- *(short *) reloc_addr
- = value + reloc->r_addend - (Elf32_Addr) reloc_addr - 2;
- break;
- case R_CRIS_32_PCREL:
- *reloc_addr = value + reloc->r_addend - (Elf32_Addr) reloc_addr - 4;
- break;
-#endif
- case R_CRIS_NONE:
- break;
-#if !defined RTLD_BOOTSTRAP || defined _NDEBUG
- default:
- _dl_reloc_bad_type (map, r_type, 0);
- break;
-#endif
- }
- }
-}
-
-static inline void
-elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
- void *const reloc_addr_arg)
-{
- Elf32_Addr *const reloc_addr = reloc_addr_arg;
- *reloc_addr = l_addr + reloc->r_addend;
-}
-
-static inline void
-elf_machine_lazy_rel (struct link_map *map,
- Elf32_Addr l_addr, const Elf32_Rela *reloc)
-{
- Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset);
- const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
- if (__builtin_expect (r_type == R_CRIS_JUMP_SLOT, 1))
- *reloc_addr += l_addr;
- else
- _dl_reloc_bad_type (map, r_type, 1);
-}
-
-#endif /* RESOLVE */
diff --git a/sysdeps/cris/elf/start.S b/sysdeps/cris/elf/start.S
deleted file mode 100644
index a3f85bc..0000000
--- a/sysdeps/cris/elf/start.S
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Startup code compliant to the ELF CRIS ABI (to-be-written).
- Copyright (C) 2001, 2002 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-
-/* This is the canonical entry point, usually the first thing in the text
- segment. When the entry point runs, most registers' values are
- unspecified, except for:
-
- R10 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:
- [SP] argc
- [SP+4] argv[0]
- ...
- [SP+4*argc] NULL
- [SP+4*(argc+1)] envp[0]
- ...
- NULL
-*/
-
- .syntax no_register_prefix
-
- .text
- .globl _start
- .type _start,@function
-_start:
- /* Clear the frame pointer, to mark the outermost frame. */
- moveq 0,r8
-
- /* Move the shared library termination function to the right place
- for __libc_main. */
- move.d r10,r9
-
- /* Extract the arguments as encoded on the stack and set up the
- arguments for `main': argc, argv. envp will be determined
- later in __libc_start_main. */
-
- /* Get the argument count. */
- move.d [sp],r11
-
- /* Store the stack pointer as end of stack. We overwrite
- the incoming argc. */
- move.d sp,[sp]
-
- /* The argument vector starts just after the argument count. */
- move.d sp,r12
- addq 4,r12
-
- /* There are seven arguments to __libc_start_main:
- r10: main - Address of it.
- r11: argc
- r12: argv
- r13: init - Function to call.
-
- [sp]: fini - Function to register with atexit.
- [sp+4]: rtld_fini - Another function to register with atexit.
- [sp+8]: stack_end - Top of stack (actually same as argv).
-
- The last two are passed on stack. */
-
- /* Store the fini function coming from the dynamic loader. */
- push r9
-
- /* Get the addresses of our own entry points to `.fini' and
- `.init'. */
-
-#ifdef __PIC__
- /* If for some reason this program is compiled as PIC, set up R0. */
- move.d pc,r0
- sub.d .:GOTOFF,r0
-
- move.d __libc_csu_init:PLTG,r13
- add.d r0,r13
- move.d __libc_csu_fini:PLTG,r9
- add.d r0,r9
- move.d main:PLTG,r10
- add.d r0,r10
-#else
- move.d __libc_csu_init,r13
- move.d __libc_csu_fini,r9
- move.d main,r10
-#endif
- push r9
-
- /* Call the user's main function, and exit with its value. But
- let the libc call main. */
- PLTCALL (__libc_start_main)
-
- /* Crash if somehow `exit' does return. We have at least 8192
- invalid addresses to choose from. */
- test.d [6502]
-
- /* Stop the unstoppable. */
-0:
- ba 0b
- nop
-
-/* 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
diff --git a/sysdeps/cris/machine-gmon.h b/sysdeps/cris/machine-gmon.h
deleted file mode 100644
index 2f36a34..0000000
--- a/sysdeps/cris/machine-gmon.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* PowerPC-specific implementation of profiling support.
- Copyright (C) 1997, 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-void __mcount_internal (unsigned long frompc, unsigned long selfpc);
-
-#define _MCOUNT_DECL(frompc, selfpc) \
-void __mcount_internal (unsigned long frompc, unsigned long selfpc)
-
-
-/* Define MCOUNT as empty since we have the implementation in another
- file. FIXME: Just stubs, currently. */
-#define MCOUNT
diff --git a/sysdeps/cris/memcopy.h b/sysdeps/cris/memcopy.h
deleted file mode 100644
index 134d361..0000000
--- a/sysdeps/cris/memcopy.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdeps/generic/memcopy.h>
-
-/* We override the word-copying macros, partly because misalignment in one
- pointer isn't cause for a special function, partly because we want to
- get rid of wordcopy.c; these macros are only used in memmove.c (and
- it's sibling bcopy) since we have arch-specific mempcpy, memcpy and
- memset. */
-
-#undef OP_T_THRES
-#define OP_T_THRES OPSIZ
-
-#define WORD_COPY_FWD(dst_bp, src_bp, nbytes_left, nbytes) \
- do \
- { \
- unsigned long enddst_bp = dst_bp + nbytes - (nbytes % OPSIZ); \
- nbytes_left = (nbytes % OPSIZ); \
- while (dst_bp < (unsigned long) enddst_bp) \
- { \
- op_t x = *(op_t *) src_bp; \
- src_bp += sizeof x; \
- *(op_t *) dst_bp = x; \
- dst_bp += sizeof x; \
- } \
- } while (0)
-
-#define WORD_COPY_BWD(dst_bp, src_bp, nbytes_left, nbytes) \
- do \
- { \
- unsigned long enddst_bp = dst_bp - nbytes + (nbytes % OPSIZ); \
- nbytes_left = (nbytes % OPSIZ); \
- while (dst_bp > enddst_bp) \
- { \
- op_t x; \
- src_bp -= sizeof x; \
- x = *(op_t *) src_bp; \
- dst_bp -= sizeof x; \
- *(op_t *) dst_bp = x; \
- } \
- } while (0)
diff --git a/sysdeps/cris/memusage.h b/sysdeps/cris/memusage.h
deleted file mode 100644
index 58b57ff..0000000
--- a/sysdeps/cris/memusage.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* No asm variables, just for reasons of solid healthy paranoia. */
-#define GETSP() \
- ({ \
- uintptr_t stack_ptr; \
- __asm__ ("move.d $sp,%0" : "=rm" (stack_ptr)); \
- stack_ptr; \
- })
-
-#include <sysdeps/generic/memusage.h>
diff --git a/sysdeps/cris/setjmp.S b/sysdeps/cris/setjmp.S
deleted file mode 100644
index c5a512f..0000000
--- a/sysdeps/cris/setjmp.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/* setjmp for CRIS.
- Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
- .syntax no_register_prefix
-
-ENTRY (__sigsetjmp)
-.Local__sigsetjmp:
- moveq 1,r9
- movem sp,[r10+1*4]
-#ifdef __PIC__
- move.d pc,r9
- addq 0f-.,r9
-#else
- move.d 0f,r9
-#endif
- move.d r9,[r10]
- move srp,[r10+16*4]
- move ccr,[r10+17*4]
- PLTJUMP (__sigjmp_save)
-0: /* This is where longjmp returns. (Don't use "ret" - it's a macro. */
- Ret
- move.d r9,r10
-END (__sigsetjmp)
-
-/* Binary compatibility entry points. Having these in separate files
- is not meaningful and just adds library overhead. */
-
-ENTRY (__setjmp)
- ba .Local__sigsetjmp
- moveq 0,r11
-END (__setjmp)
-
-ENTRY (_setjmp)
- ba .Local__sigsetjmp
- moveq 0,r11
-END (_setjmp)
-
-ENTRY (setjmp)
- ba .Local__sigsetjmp
- moveq 1,r11
-END (setjmp)
-
-weak_extern (__setjmp)
-weak_extern (_setjmp)
-weak_extern (setjmp)
diff --git a/sysdeps/cris/stackinfo.h b/sysdeps/cris/stackinfo.h
deleted file mode 100644
index 43c9448..0000000
--- a/sysdeps/cris/stackinfo.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* This file contains a bit of information about the stack allocation
- of the processor. */
-
-#ifndef _STACKINFO_H
-#define _STACKINFO_H 1
-
-/* On cris the stack grows down. */
-#define _STACK_GROWS_DOWN 1
-
-#endif /* stackinfo.h */
diff --git a/sysdeps/cris/sysdep.h b/sysdeps/cris/sysdep.h
deleted file mode 100644
index 913d5ad..0000000
--- a/sysdeps/cris/sysdep.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Assembler macros for CRIS.
- Copyright (C) 1999, 2000, 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdeps/generic/sysdep.h>
-
-#ifndef HAVE_ELF
-# error ELF is assumed. Generalize the code and retry.
-#endif
-
-#ifndef NO_UNDERSCORES
-# error User-label prefix (underscore) assumed absent. Generalize the code and retry.
-#endif
-
-#ifdef __ASSEMBLER__
-
-/* Syntactic details of assembly-code. */
-
-/* It is *not* generally true that "ELF uses byte-counts for .align, most
- others use log2 of count of bytes", like some neighboring configs say.
- See "align" in gas/read.c which is not overridden by
- gas/config/obj-elf.c. It takes a log2 argument. *Some* targets
- override it to take a byte argument. People should read source instead
- of relying on hearsay. */
-# define ALIGNARG(log2) log2
-
-# define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg
-# define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-
-/* The non-PIC jump is preferred, since it does not stall, and does not
- invoke generation of a PLT. These macros assume that $r0 is set up as
- GOT register. */
-# ifdef __PIC__
-# define PLTJUMP(_x) \
- add.d C_SYMBOL_NAME (_x):PLT,$pc
-
-# define PLTCALL(_x) \
- move.d C_SYMBOL_NAME (_x):PLTG,$r9 @ \
- add.d $r0,$r9 @ \
- jsr $r9
-
-# define SETUP_PIC \
- push $r0 @ \
- move.d $pc,$r0 @ \
- sub.d .:GOTOFF,$r0
-
-# define TEARDOWN_PIC pop $r0
-# else
-# define PLTJUMP(_x) jump C_SYMBOL_NAME (_x)
-# define PLTCALL(_x) jsr C_SYMBOL_NAME (_x)
-# define SETUP_PIC
-# define TEARDOWN_PIC
-# endif
-
-/* Define an entry point visible from C. */
-# define ENTRY(name) \
- .text @ \
- ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (name) @ \
- ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME (name), function) @ \
- .align ALIGNARG (2) @ \
- C_LABEL(name) @ \
- CALL_MCOUNT
-
-# undef END
-# define END(name) \
- ASM_SIZE_DIRECTIVE (C_SYMBOL_NAME (name))
-
-/* If compiled for profiling, call `mcount' at the start of each function.
- FIXME: Note that profiling is not actually implemented. This is just
- example code which might not even compile, though it is believed to be
- correct. */
-# ifdef PROF
-# define CALL_MCOUNT \
- push $srp @ \
- push $r9 @ \
- push $r10 @ \
- push $r11 @ \
- push $r12 @ \
- push $r13 @ \
- SETUP_PIC @ \
- PLTCALL (mcount) @ \
- TEARDOWN_PIC @ \
- pop $r13 @ \
- pop $r12 @ \
- pop $r11 @ \
- pop $r10 @ \
- pop $r9 @ \
- pop $srp
-# 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/cris/wordcopy.c b/sysdeps/cris/wordcopy.c
deleted file mode 100644
index 6525e9f..0000000
--- a/sysdeps/cris/wordcopy.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty; not needed. */
diff --git a/sysdeps/i860/memcopy.h b/sysdeps/i860/memcopy.h
deleted file mode 100644
index 3bb9ba5..0000000
--- a/sysdeps/i860/memcopy.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1991, 1997 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdeps/generic/memcopy.h>
-
-#if 0
-#undef MERGE
-/* In order to make this work properly, an 's' constraint need to be added
- to tm-i860.h, to mean the SC register. */
-#define MERGE(w0, sh_1, w1, sh_2) \
- ({ \
- unsigned int __merge; \
- asm("shrd %2,%1,%0" : \
- "=r" (__merge) : \
- "r" (w0), "r" (w1), "s" (sh_1)); \
- __merge; \
- })
-#endif
diff --git a/sysdeps/i960/Implies b/sysdeps/i960/Implies
deleted file mode 100644
index 1d56974..0000000
--- a/sysdeps/i960/Implies
+++ /dev/null
@@ -1,3 +0,0 @@
-# i960 family uses IEEE 754 floating point.
-ieee754/flt-32
-ieee754/dbl-64
diff --git a/sysdeps/i960/add_n.s b/sysdeps/i960/add_n.s
deleted file mode 100644
index 6031f6d..0000000
--- a/sysdeps/i960/add_n.s
+++ /dev/null
@@ -1,21 +0,0 @@
-.text
- .align 4
- .globl ___mpn_add_n
-___mpn_add_n:
- mov 0,g6 # clear carry-save register
- cmpo 1,0 # clear cy
-
-Loop: subo 1,g3,g3 # update loop counter
- ld (g1),g5 # load from s1_ptr
- addo 4,g1,g1 # s1_ptr++
- ld (g2),g4 # load from s2_ptr
- addo 4,g2,g2 # s2_ptr++
- cmpo g6,1 # restore cy from g6, relies on cy being 0
- addc g4,g5,g4 # main add
- subc 0,0,g6 # save cy in g6
- st g4,(g0) # store result to res_ptr
- addo 4,g0,g0 # res_ptr++
- cmpobne 0,g3,Loop # when branch is taken, clears C bit
-
- mov g6,g0
- ret
diff --git a/sysdeps/i960/addmul_1.s b/sysdeps/i960/addmul_1.s
deleted file mode 100644
index 1a3de95..0000000
--- a/sysdeps/i960/addmul_1.s
+++ /dev/null
@@ -1,26 +0,0 @@
-.text
- .align 4
- .globl ___mpn_mul_1
-___mpn_mul_1:
- subo g2,0,g2
- shlo 2,g2,g4
- subo g4,g1,g1
- subo g4,g0,g13
- mov 0,g0
-
- cmpo 1,0 # clear C bit on AC.cc
-
-Loop: ld (g1)[g2*4],g5
- emul g3,g5,g6
- ld (g13)[g2*4],g5
-
- addc g0,g6,g6 # relies on that C bit is clear
- addc 0,g7,g7
- addc g5,g6,g6 # relies on that C bit is clear
- st g6,(g13)[g2*4]
- addc 0,g7,g0
-
- addo g2,1,g2
- cmpobne 0,g2,Loop # when branch is taken, clears C bit
-
- ret
diff --git a/sysdeps/i960/ffs.c b/sysdeps/i960/ffs.c
deleted file mode 100644
index ad907a4..0000000
--- a/sysdeps/i960/ffs.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* ffs -- find first set bit in a word, counted from least significant end.
- For i960 Core architecture
- This file is part of the GNU C Library.
- Copyright (C) 1994, 1997, 2004 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <string.h>
-
-#undef ffs
-
-#if defined (__GNUC__) && defined (__i960__)
-
-int
-__ffs (x)
- int x;
-{
- int cnt;
-
- asm ("scanbit %1,%0" : "=d" (cnt) : "rm" (x & -x));
-
- return cnt;
-}
-weak_alias (__ffs, ffs)
-libc_hidden_builtin_def (ffs)
-
-#else
-
-#include <sysdeps/generic/ffs.c>
-
-#endif
diff --git a/sysdeps/i960/mul_1.s b/sysdeps/i960/mul_1.s
deleted file mode 100644
index e75ea42..0000000
--- a/sysdeps/i960/mul_1.s
+++ /dev/null
@@ -1,23 +0,0 @@
-.text
- .align 4
- .globl ___mpn_mul_1
-___mpn_mul_1:
- subo g2,0,g2
- shlo 2,g2,g4
- subo g4,g1,g1
- subo g4,g0,g13
- mov 0,g0
-
- cmpo 1,0 # clear C bit on AC.cc
-
-Loop: ld (g1)[g2*4],g5
- emul g3,g5,g6
-
- addc g0,g6,g6 # relies on that C bit is clear
- st g6,(g13)[g2*4]
- addc 0,g7,g0
-
- addo g2,1,g2
- cmpobne 0,g2,Loop # when branch is taken, clears C bit
-
- ret
diff --git a/sysdeps/i960/sub_n.s b/sysdeps/i960/sub_n.s
deleted file mode 100644
index 13ebbfa..0000000
--- a/sysdeps/i960/sub_n.s
+++ /dev/null
@@ -1,21 +0,0 @@
-.text
- .align 4
- .globl ___mpn_sub_n
-___mpn_sub_n:
- mov 1,g6 # set carry-save register
- cmpo 1,0 # clear cy
-
-Loop: subo 1,g3,g3 # update loop counter
- ld (g1),g5 # load from s1_ptr
- addo 4,g1,g1 # s1_ptr++
- ld (g2),g4 # load from s2_ptr
- addo 4,g2,g2 # s2_ptr++
- cmpo g6,1 # restore cy from g6, relies on cy being 0
- subc g4,g5,g4 # main subtract
- subc 0,0,g6 # save cy in g6
- st g4,(g0) # store result to res_ptr
- addo 4,g0,g0 # res_ptr++
- cmpobne 0,g3,Loop # when branch is taken, cy will be 0
-
- mov g6,g0
- ret
diff --git a/sysdeps/m88k/add_n.s b/sysdeps/m88k/add_n.s
deleted file mode 100644
index a10730d..0000000
--- a/sysdeps/m88k/add_n.s
+++ /dev/null
@@ -1,104 +0,0 @@
-; mc88100 __mpn_add -- Add two limb vectors of the same length > 0 and store
-; sum in a third limb vector.
-
-; Copyright (C) 1992, 1994, 1995 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, write to
-; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-; MA 02111-1307, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; s2_ptr r4
-; size r5
-
-; This code has been optimized to run one instruction per clock, avoiding
-; load stalls and writeback contention. As a result, the instruction
-; order is not always natural.
-
-; The speed is about 4.6 clocks/limb + 18 clocks/limb-vector on an 88100,
-; but on the 88110, it seems to run much slower, 6.6 clocks/limb.
-
- text
- align 16
- global ___mpn_add_n
-___mpn_add_n:
- ld r6,r3,0 ; read first limb from s1_ptr
- extu r10,r5,3
- ld r7,r4,0 ; read first limb from s2_ptr
-
- subu.co r5,r0,r5 ; (clear carry as side effect)
- mak r5,r5,3<4>
- bcnd eq0,r5,Lzero
-
- or r12,r0,lo16(Lbase)
- or.u r12,r12,hi16(Lbase)
- addu r12,r12,r5 ; r12 is address for entering in loop
-
- extu r5,r5,2 ; divide by 4
- subu r2,r2,r5 ; adjust res_ptr
- subu r3,r3,r5 ; adjust s1_ptr
- subu r4,r4,r5 ; adjust s2_ptr
-
- or r8,r6,r0
-
- jmp.n r12
- or r9,r7,r0
-
-Loop: addu r3,r3,32
- st r8,r2,28
- addu r4,r4,32
- ld r6,r3,0
- addu r2,r2,32
- ld r7,r4,0
-Lzero: subu r10,r10,1 ; add 0 + 8r limbs (adj loop cnt)
-Lbase: ld r8,r3,4
- addu.cio r6,r6,r7
- ld r9,r4,4
- st r6,r2,0
- ld r6,r3,8 ; add 7 + 8r limbs
- addu.cio r8,r8,r9
- ld r7,r4,8
- st r8,r2,4
- ld r8,r3,12 ; add 6 + 8r limbs
- addu.cio r6,r6,r7
- ld r9,r4,12
- st r6,r2,8
- ld r6,r3,16 ; add 5 + 8r limbs
- addu.cio r8,r8,r9
- ld r7,r4,16
- st r8,r2,12
- ld r8,r3,20 ; add 4 + 8r limbs
- addu.cio r6,r6,r7
- ld r9,r4,20
- st r6,r2,16
- ld r6,r3,24 ; add 3 + 8r limbs
- addu.cio r8,r8,r9
- ld r7,r4,24
- st r8,r2,20
- ld r8,r3,28 ; add 2 + 8r limbs
- addu.cio r6,r6,r7
- ld r9,r4,28
- st r6,r2,24
- bcnd.n ne0,r10,Loop ; add 1 + 8r limbs
- addu.cio r8,r8,r9
-
- st r8,r2,28 ; store most significant limb
-
- jmp.n r1
- addu.ci r2,r0,r0 ; return carry-out from most sign. limb
diff --git a/sysdeps/m88k/ffs.c b/sysdeps/m88k/ffs.c
deleted file mode 100644
index b7db70f..0000000
--- a/sysdeps/m88k/ffs.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* ffs -- find first set bit in a word, counted from least significant end.
- For Motorola 88000.
- This file is part of the GNU C Library.
- Copyright (C) 1991, 1992, 1997, 2004 Free Software Foundation, Inc.
- Contributed by Torbjorn Granlund (tege@sics.se).
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <bstring.h>
-
-#undef ffs
-
-#ifdef __GNUC__
-
-int
-__ffs (x)
- int x;
-{
- int cnt;
-
- if (x == 0)
- return 0;
-
- asm ("ff1 %0,%1" : "=r" (cnt) : "r" (x & -x));
- return cnt + 1;
-}
-weak_alias (__ffs, ffs)
-libc_hidden_builtin_def (ffs)
-
-#else
-#include <sysdeps/generic/ffs.c>
-#endif
diff --git a/sysdeps/m88k/m88100/add_n.S b/sysdeps/m88k/m88100/add_n.S
deleted file mode 100644
index 2107eb5..0000000
--- a/sysdeps/m88k/m88100/add_n.S
+++ /dev/null
@@ -1,133 +0,0 @@
-; mc88100 __mpn_add -- Add two limb vectors of the same length > 0 and store
-; sum in a third limb vector.
-
-; Copyright (C) 1992, 1994 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 General Public License as published by
-; the Free Software Foundation; either version 2, 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 General Public License for more details.
-
-; You should have received a copy of the GNU General Public License
-; along with the GNU MP Library; see the file COPYING. If not, write to
-; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; s2_ptr r4
-; size r5
-
-; This code has been optimized to run one instruction per clock, avoiding
-; load stalls and writeback contention. As a result, the instruction
-; order is not always natural.
-
-; The speed is approximately 4.3 clocks/limb + 18 clocks/limb-vector.
-
-#include "sysdep.h"
-
-ENTRY (__mpn_add_n)
- ld r6,r3,0 ; read first limb from s1_ptr
- extu r10,r5,4
- ld r7,r4,0 ; read first limb from s2_ptr
-
- subu.co r5,r0,r5 ; (clear carry as side effect)
- mak r5,r5,4<4>
- bcnd eq0,r5,Lzero
-
- or r12,r0,lo16(Lbase)
- or.u r12,r12,hi16(Lbase)
- addu r12,r12,r5 ; r12 is address for entering in loop
-
- extu r5,r5,2 ; divide by 4
- subu r2,r2,r5 ; adjust res_ptr
- subu r3,r3,r5 ; adjust s1_ptr
- subu r4,r4,r5 ; adjust s2_ptr
-
- or r8,r6,r0
-
- jmp.n r12
- or r9,r7,r0
-
-Loop: addu r3,r3,64
- st r8,r2,60
- addu r4,r4,64
- ld r6,r3,0
- addu r2,r2,64
- ld r7,r4,0
-Lzero: subu r10,r10,1 ; add 0 + 16r limbs (adjust loop counter)
-Lbase: ld r8,r3,4
- addu.cio r6,r6,r7
- ld r9,r4,4
- st r6,r2,0
- ld r6,r3,8 ; add 15 + 16r limbs
- addu.cio r8,r8,r9
- ld r7,r4,8
- st r8,r2,4
- ld r8,r3,12 ; add 14 + 16r limbs
- addu.cio r6,r6,r7
- ld r9,r4,12
- st r6,r2,8
- ld r6,r3,16 ; add 13 + 16r limbs
- addu.cio r8,r8,r9
- ld r7,r4,16
- st r8,r2,12
- ld r8,r3,20 ; add 12 + 16r limbs
- addu.cio r6,r6,r7
- ld r9,r4,20
- st r6,r2,16
- ld r6,r3,24 ; add 11 + 16r limbs
- addu.cio r8,r8,r9
- ld r7,r4,24
- st r8,r2,20
- ld r8,r3,28 ; add 10 + 16r limbs
- addu.cio r6,r6,r7
- ld r9,r4,28
- st r6,r2,24
- ld r6,r3,32 ; add 9 + 16r limbs
- addu.cio r8,r8,r9
- ld r7,r4,32
- st r8,r2,28
- ld r8,r3,36 ; add 8 + 16r limbs
- addu.cio r6,r6,r7
- ld r9,r4,36
- st r6,r2,32
- ld r6,r3,40 ; add 7 + 16r limbs
- addu.cio r8,r8,r9
- ld r7,r4,40
- st r8,r2,36
- ld r8,r3,44 ; add 6 + 16r limbs
- addu.cio r6,r6,r7
- ld r9,r4,44
- st r6,r2,40
- ld r6,r3,48 ; add 5 + 16r limbs
- addu.cio r8,r8,r9
- ld r7,r4,48
- st r8,r2,44
- ld r8,r3,52 ; add 4 + 16r limbs
- addu.cio r6,r6,r7
- ld r9,r4,52
- st r6,r2,48
- ld r6,r3,56 ; add 3 + 16r limbs
- addu.cio r8,r8,r9
- ld r7,r4,56
- st r8,r2,52
- ld r8,r3,60 ; add 2 + 16r limbs
- addu.cio r6,r6,r7
- ld r9,r4,60
- st r6,r2,56
- bcnd.n ne0,r10,Loop ; add 1 + 16r limbs
- addu.cio r8,r8,r9
-
- st r8,r2,60 ; store most significant limb
-
- jmp.n r1
- addu.ci r2,r0,r0 ; return carry-out from most sign. limb
diff --git a/sysdeps/m88k/m88100/add_n.s b/sysdeps/m88k/m88100/add_n.s
deleted file mode 100644
index 0741ec9..0000000
--- a/sysdeps/m88k/m88100/add_n.s
+++ /dev/null
@@ -1,103 +0,0 @@
-; mc88100 __mpn_add -- Add two limb vectors of the same length > 0 and store
-; sum in a third limb vector.
-
-; Copyright (C) 1992, 1994 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, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; s2_ptr r4
-; size r5
-
-; This code has been optimized to run one instruction per clock, avoiding
-; load stalls and writeback contention. As a result, the instruction
-; order is not always natural.
-
-; The speed is about 4.6 clocks/limb + 18 clocks/limb-vector on an 88100,
-; but on the 88110, it seems to run much slower, 6.6 clocks/limb.
-
- text
- align 16
- global ___mpn_add_n
-___mpn_add_n:
- ld r6,r3,0 ; read first limb from s1_ptr
- extu r10,r5,3
- ld r7,r4,0 ; read first limb from s2_ptr
-
- subu.co r5,r0,r5 ; (clear carry as side effect)
- mak r5,r5,3<4>
- bcnd eq0,r5,Lzero
-
- or r12,r0,lo16(Lbase)
- or.u r12,r12,hi16(Lbase)
- addu r12,r12,r5 ; r12 is address for entering in loop
-
- extu r5,r5,2 ; divide by 4
- subu r2,r2,r5 ; adjust res_ptr
- subu r3,r3,r5 ; adjust s1_ptr
- subu r4,r4,r5 ; adjust s2_ptr
-
- or r8,r6,r0
-
- jmp.n r12
- or r9,r7,r0
-
-Loop: addu r3,r3,32
- st r8,r2,28
- addu r4,r4,32
- ld r6,r3,0
- addu r2,r2,32
- ld r7,r4,0
-Lzero: subu r10,r10,1 ; add 0 + 8r limbs (adj loop cnt)
-Lbase: ld r8,r3,4
- addu.cio r6,r6,r7
- ld r9,r4,4
- st r6,r2,0
- ld r6,r3,8 ; add 7 + 8r limbs
- addu.cio r8,r8,r9
- ld r7,r4,8
- st r8,r2,4
- ld r8,r3,12 ; add 6 + 8r limbs
- addu.cio r6,r6,r7
- ld r9,r4,12
- st r6,r2,8
- ld r6,r3,16 ; add 5 + 8r limbs
- addu.cio r8,r8,r9
- ld r7,r4,16
- st r8,r2,12
- ld r8,r3,20 ; add 4 + 8r limbs
- addu.cio r6,r6,r7
- ld r9,r4,20
- st r6,r2,16
- ld r6,r3,24 ; add 3 + 8r limbs
- addu.cio r8,r8,r9
- ld r7,r4,24
- st r8,r2,20
- ld r8,r3,28 ; add 2 + 8r limbs
- addu.cio r6,r6,r7
- ld r9,r4,28
- st r6,r2,24
- bcnd.n ne0,r10,Loop ; add 1 + 8r limbs
- addu.cio r8,r8,r9
-
- st r8,r2,28 ; store most significant limb
-
- jmp.n r1
- addu.ci r2,r0,r0 ; return carry-out from most sign. limb
diff --git a/sysdeps/m88k/m88100/mul_1.S b/sysdeps/m88k/m88100/mul_1.S
deleted file mode 100644
index 503897b..0000000
--- a/sysdeps/m88k/m88100/mul_1.S
+++ /dev/null
@@ -1,127 +0,0 @@
-; mc88100 __mpn_mul_1 -- Multiply a limb vector with a single limb and
-; store the product in a second limb vector.
-
-; Copyright (C) 1992, 1994 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 General Public License as published by
-; the Free Software Foundation; either version 2, 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 General Public License for more details.
-
-; You should have received a copy of the GNU General Public License
-; along with the GNU MP Library; see the file COPYING. If not, write to
-; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; size r4
-; s2_limb r5
-
-; Common overhead is about 11 cycles/invocation.
-
-; The speed for S2_LIMB >= 0x10000 is approximately 21 cycles/limb. (The
-; pipeline stalls 2 cycles due to WB contention.)
-
-; The speed for S2_LIMB < 0x10000 is approximately 16 cycles/limb. (The
-; pipeline stalls 2 cycles due to WB contention and 1 cycle due to latency.)
-
-; To enhance speed:
-; 1. Unroll main loop 4-8 times.
-; 2. Schedule code to avoid WB contention. It might be tempting to move the
-; ld instruction in the loops down to save 2 cycles (less WB contention),
-; but that looses because the ultimate value will be read from outside
-; the allocated space. But if we handle the ultimate multiplication in
-; the tail, we can do this.
-; 3. Make the multiplication with less instructions. I think the code for
-; (S2_LIMB >= 0x10000) is not minimal.
-; With these techniques the (S2_LIMB >= 0x10000) case would run in 17 or
-; less cycles/limb; the (S2_LIMB < 0x10000) case would run in 11
-; cycles/limb. (Assuming infinite unrolling.)
-
-#include "sysdep.h"
-
-ENTRY (__mpn_mul_1)
-
- ; Make S1_PTR and RES_PTR point at the end of their blocks
- ; and negate SIZE.
- lda r3,r3[r4]
- lda r6,r2[r4] ; RES_PTR in r6 since r2 is retval
- subu r4,r0,r4
-
- addu.co r2,r0,r0 ; r2 = cy = 0
- ld r9,r3[r4]
- mask r7,r5,0xffff ; r7 = lo(S2_LIMB)
- extu r8,r5,16 ; r8 = hi(S2_LIMB)
- bcnd.n eq0,r8,Lsmall ; jump if (hi(S2_LIMB) == 0)
- subu r6,r6,4
-
-; General code for any value of S2_LIMB.
-
- ; Make a stack frame and save r25 and r26
- subu r31,r31,16
- st.d r25,r31,8
-
- ; Enter the loop in the middle
- br.n L1
- addu r4,r4,1
-
-Loop:
- ld r9,r3[r4]
- st r26,r6[r4]
-; bcnd ne0,r0,0 ; bubble
- addu r4,r4,1
-L1: mul r26,r9,r5 ; low word of product mul_1 WB ld
- mask r12,r9,0xffff ; r12 = lo(s1_limb) mask_1
- mul r11,r12,r7 ; r11 = prod_0 mul_2 WB mask_1
- mul r10,r12,r8 ; r10 = prod_1a mul_3
- extu r13,r9,16 ; r13 = hi(s1_limb) extu_1 WB mul_1
- mul r12,r13,r7 ; r12 = prod_1b mul_4 WB extu_1
- mul r25,r13,r8 ; r25 = prod_2 mul_5 WB mul_2
- extu r11,r11,16 ; r11 = hi(prod_0) extu_2 WB mul_3
- addu r10,r10,r11 ; addu_1 WB extu_2
-; bcnd ne0,r0,0 ; bubble WB addu_1
- addu.co r10,r10,r12 ; WB mul_4
- mask.u r10,r10,0xffff ; move the 16 most significant bits...
- addu.ci r10,r10,r0 ; ...to the low half of the word...
- rot r10,r10,16 ; ...and put carry in pos 16.
- addu.co r26,r26,r2 ; add old carry limb
- bcnd.n ne0,r4,Loop
- addu.ci r2,r25,r10 ; compute new carry limb
-
- st r26,r6[r4]
- ld.d r25,r31,8
- jmp.n r1
- addu r31,r31,16
-
-; Fast code for S2_LIMB < 0x10000
-Lsmall:
- ; Enter the loop in the middle
- br.n SL1
- addu r4,r4,1
-
-SLoop:
- ld r9,r3[r4] ;
- st r8,r6[r4] ;
- addu r4,r4,1 ;
-SL1: mul r8,r9,r5 ; low word of product
- mask r12,r9,0xffff ; r12 = lo(s1_limb)
- extu r13,r9,16 ; r13 = hi(s1_limb)
- mul r11,r12,r7 ; r11 = prod_0
- mul r12,r13,r7 ; r12 = prod_1b
- addu.cio r8,r8,r2 ; add old carry limb
- extu r10,r11,16 ; r11 = hi(prod_0)
- addu r10,r10,r12 ;
- bcnd.n ne0,r4,SLoop
- extu r2,r10,16 ; r2 = new carry limb
-
- jmp.n r1
- st r8,r6[r4]
diff --git a/sysdeps/m88k/m88100/mul_1.s b/sysdeps/m88k/m88100/mul_1.s
deleted file mode 100644
index 7724277..0000000
--- a/sysdeps/m88k/m88100/mul_1.s
+++ /dev/null
@@ -1,128 +0,0 @@
-; mc88100 __mpn_mul_1 -- Multiply a limb vector with a single limb and
-; store the product in a second limb vector.
-
-; Copyright (C) 1992, 1994 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, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; size r4
-; s2_limb r5
-
-; Common overhead is about 11 cycles/invocation.
-
-; The speed for S2_LIMB >= 0x10000 is approximately 21 cycles/limb. (The
-; pipeline stalls 2 cycles due to WB contention.)
-
-; The speed for S2_LIMB < 0x10000 is approximately 16 cycles/limb. (The
-; pipeline stalls 2 cycles due to WB contention and 1 cycle due to latency.)
-
-; To enhance speed:
-; 1. Unroll main loop 4-8 times.
-; 2. Schedule code to avoid WB contention. It might be tempting to move the
-; ld instruction in the loops down to save 2 cycles (less WB contention),
-; but that looses because the ultimate value will be read from outside
-; the allocated space. But if we handle the ultimate multiplication in
-; the tail, we can do this.
-; 3. Make the multiplication with less instructions. I think the code for
-; (S2_LIMB >= 0x10000) is not minimal.
-; With these techniques the (S2_LIMB >= 0x10000) case would run in 17 or
-; less cycles/limb; the (S2_LIMB < 0x10000) case would run in 11
-; cycles/limb. (Assuming infinite unrolling.)
-
- text
- align 16
- global ___mpn_mul_1
-___mpn_mul_1:
-
- ; Make S1_PTR and RES_PTR point at the end of their blocks
- ; and negate SIZE.
- lda r3,r3[r4]
- lda r6,r2[r4] ; RES_PTR in r6 since r2 is retval
- subu r4,r0,r4
-
- addu.co r2,r0,r0 ; r2 = cy = 0
- ld r9,r3[r4]
- mask r7,r5,0xffff ; r7 = lo(S2_LIMB)
- extu r8,r5,16 ; r8 = hi(S2_LIMB)
- bcnd.n eq0,r8,Lsmall ; jump if (hi(S2_LIMB) == 0)
- subu r6,r6,4
-
-; General code for any value of S2_LIMB.
-
- ; Make a stack frame and save r25 and r26
- subu r31,r31,16
- st.d r25,r31,8
-
- ; Enter the loop in the middle
- br.n L1
- addu r4,r4,1
-
-Loop:
- ld r9,r3[r4]
- st r26,r6[r4]
-; bcnd ne0,r0,0 ; bubble
- addu r4,r4,1
-L1: mul r26,r9,r5 ; low word of product mul_1 WB ld
- mask r12,r9,0xffff ; r12 = lo(s1_limb) mask_1
- mul r11,r12,r7 ; r11 = prod_0 mul_2 WB mask_1
- mul r10,r12,r8 ; r10 = prod_1a mul_3
- extu r13,r9,16 ; r13 = hi(s1_limb) extu_1 WB mul_1
- mul r12,r13,r7 ; r12 = prod_1b mul_4 WB extu_1
- mul r25,r13,r8 ; r25 = prod_2 mul_5 WB mul_2
- extu r11,r11,16 ; r11 = hi(prod_0) extu_2 WB mul_3
- addu r10,r10,r11 ; addu_1 WB extu_2
-; bcnd ne0,r0,0 ; bubble WB addu_1
- addu.co r10,r10,r12 ; WB mul_4
- mask.u r10,r10,0xffff ; move the 16 most significant bits...
- addu.ci r10,r10,r0 ; ...to the low half of the word...
- rot r10,r10,16 ; ...and put carry in pos 16.
- addu.co r26,r26,r2 ; add old carry limb
- bcnd.n ne0,r4,Loop
- addu.ci r2,r25,r10 ; compute new carry limb
-
- st r26,r6[r4]
- ld.d r25,r31,8
- jmp.n r1
- addu r31,r31,16
-
-; Fast code for S2_LIMB < 0x10000
-Lsmall:
- ; Enter the loop in the middle
- br.n SL1
- addu r4,r4,1
-
-SLoop:
- ld r9,r3[r4] ;
- st r8,r6[r4] ;
- addu r4,r4,1 ;
-SL1: mul r8,r9,r5 ; low word of product
- mask r12,r9,0xffff ; r12 = lo(s1_limb)
- extu r13,r9,16 ; r13 = hi(s1_limb)
- mul r11,r12,r7 ; r11 = prod_0
- mul r12,r13,r7 ; r12 = prod_1b
- addu.cio r8,r8,r2 ; add old carry limb
- extu r10,r11,16 ; r11 = hi(prod_0)
- addu r10,r10,r12 ;
- bcnd.n ne0,r4,SLoop
- extu r2,r10,16 ; r2 = new carry limb
-
- jmp.n r1
- st r8,r6[r4]
diff --git a/sysdeps/m88k/m88100/sub_n.S b/sysdeps/m88k/m88100/sub_n.S
deleted file mode 100644
index 927ece4..0000000
--- a/sysdeps/m88k/m88100/sub_n.S
+++ /dev/null
@@ -1,134 +0,0 @@
-; mc88100 __mpn_sub -- Subtract two limb vectors of the same length > 0 and
-; store difference in a third limb vector.
-
-; Copyright (C) 1992, 1994 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 General Public License as published by
-; the Free Software Foundation; either version 2, 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 General Public License for more details.
-
-; You should have received a copy of the GNU General Public License
-; along with the GNU MP Library; see the file COPYING. If not, write to
-; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; s2_ptr r4
-; size r5
-
-; This code has been optimized to run one instruction per clock, avoiding
-; load stalls and writeback contention. As a result, the instruction
-; order is not always natural.
-
-; The speed is approximately 4.3 clocks/limb + 18 clocks/limb-vector.
-
-#include "sysdep.h"
-
-ENTRY (__mpn_sub_n)
- ld r6,r3,0 ; read first limb from s1_ptr
- extu r10,r5,4
- ld r7,r4,0 ; read first limb from s2_ptr
-
- subu.co r5,r0,r5 ; (clear carry as side effect)
- mak r5,r5,4<4>
- bcnd eq0,r5,Lzero
-
- or r12,r0,lo16(Lbase)
- or.u r12,r12,hi16(Lbase)
- addu r12,r12,r5 ; r12 is address for entering in loop
-
- extu r5,r5,2 ; divide by 4
- subu r2,r2,r5 ; adjust res_ptr
- subu r3,r3,r5 ; adjust s1_ptr
- subu r4,r4,r5 ; adjust s2_ptr
-
- or r8,r6,r0
-
- jmp.n r12
- or r9,r7,r0
-
-Loop: addu r3,r3,64
- st r8,r2,60
- addu r4,r4,64
- ld r6,r3,0
- addu r2,r2,64
- ld r7,r4,0
-Lzero: subu r10,r10,1 ; subtract 0 + 16r limbs (adjust loop counter)
-Lbase: ld r8,r3,4
- subu.cio r6,r6,r7
- ld r9,r4,4
- st r6,r2,0
- ld r6,r3,8 ; subtract 15 + 16r limbs
- subu.cio r8,r8,r9
- ld r7,r4,8
- st r8,r2,4
- ld r8,r3,12 ; subtract 14 + 16r limbs
- subu.cio r6,r6,r7
- ld r9,r4,12
- st r6,r2,8
- ld r6,r3,16 ; subtract 13 + 16r limbs
- subu.cio r8,r8,r9
- ld r7,r4,16
- st r8,r2,12
- ld r8,r3,20 ; subtract 12 + 16r limbs
- subu.cio r6,r6,r7
- ld r9,r4,20
- st r6,r2,16
- ld r6,r3,24 ; subtract 11 + 16r limbs
- subu.cio r8,r8,r9
- ld r7,r4,24
- st r8,r2,20
- ld r8,r3,28 ; subtract 10 + 16r limbs
- subu.cio r6,r6,r7
- ld r9,r4,28
- st r6,r2,24
- ld r6,r3,32 ; subtract 9 + 16r limbs
- subu.cio r8,r8,r9
- ld r7,r4,32
- st r8,r2,28
- ld r8,r3,36 ; subtract 8 + 16r limbs
- subu.cio r6,r6,r7
- ld r9,r4,36
- st r6,r2,32
- ld r6,r3,40 ; subtract 7 + 16r limbs
- subu.cio r8,r8,r9
- ld r7,r4,40
- st r8,r2,36
- ld r8,r3,44 ; subtract 6 + 16r limbs
- subu.cio r6,r6,r7
- ld r9,r4,44
- st r6,r2,40
- ld r6,r3,48 ; subtract 5 + 16r limbs
- subu.cio r8,r8,r9
- ld r7,r4,48
- st r8,r2,44
- ld r8,r3,52 ; subtract 4 + 16r limbs
- subu.cio r6,r6,r7
- ld r9,r4,52
- st r6,r2,48
- ld r6,r3,56 ; subtract 3 + 16r limbs
- subu.cio r8,r8,r9
- ld r7,r4,56
- st r8,r2,52
- ld r8,r3,60 ; subtract 2 + 16r limbs
- subu.cio r6,r6,r7
- ld r9,r4,60
- st r6,r2,56
- bcnd.n ne0,r10,Loop ; subtract 1 + 16r limbs
- subu.cio r8,r8,r9
-
- st r8,r2,60 ; store most significant limb
-
- addu.ci r2,r0,r0 ; return carry-out from most sign. limb
- jmp.n r1
- xor r2,r2,1
diff --git a/sysdeps/m88k/m88100/sub_n.s b/sysdeps/m88k/m88100/sub_n.s
deleted file mode 100644
index a132c21..0000000
--- a/sysdeps/m88k/m88100/sub_n.s
+++ /dev/null
@@ -1,104 +0,0 @@
-; mc88100 __mpn_sub -- Subtract two limb vectors of the same length > 0 and
-; store difference in a third limb vector.
-
-; Copyright (C) 1992, 1994 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, write to
-; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; s2_ptr r4
-; size r5
-
-; This code has been optimized to run one instruction per clock, avoiding
-; load stalls and writeback contention. As a result, the instruction
-; order is not always natural.
-
-; The speed is about 4.6 clocks/limb + 18 clocks/limb-vector on an 88100,
-; but on the 88110, it seems to run much slower, 6.6 clocks/limb.
-
- text
- align 16
- global ___mpn_sub_n
-___mpn_sub_n:
- ld r6,r3,0 ; read first limb from s1_ptr
- extu r10,r5,3
- ld r7,r4,0 ; read first limb from s2_ptr
-
- subu.co r5,r0,r5 ; (clear carry as side effect)
- mak r5,r5,3<4>
- bcnd eq0,r5,Lzero
-
- or r12,r0,lo16(Lbase)
- or.u r12,r12,hi16(Lbase)
- addu r12,r12,r5 ; r12 is address for entering in loop
-
- extu r5,r5,2 ; divide by 4
- subu r2,r2,r5 ; adjust res_ptr
- subu r3,r3,r5 ; adjust s1_ptr
- subu r4,r4,r5 ; adjust s2_ptr
-
- or r8,r6,r0
-
- jmp.n r12
- or r9,r7,r0
-
-Loop: addu r3,r3,32
- st r8,r2,28
- addu r4,r4,32
- ld r6,r3,0
- addu r2,r2,32
- ld r7,r4,0
-Lzero: subu r10,r10,1 ; subtract 0 + 8r limbs (adj loop cnt)
-Lbase: ld r8,r3,4
- subu.cio r6,r6,r7
- ld r9,r4,4
- st r6,r2,0
- ld r6,r3,8 ; subtract 7 + 8r limbs
- subu.cio r8,r8,r9
- ld r7,r4,8
- st r8,r2,4
- ld r8,r3,12 ; subtract 6 + 8r limbs
- subu.cio r6,r6,r7
- ld r9,r4,12
- st r6,r2,8
- ld r6,r3,16 ; subtract 5 + 8r limbs
- subu.cio r8,r8,r9
- ld r7,r4,16
- st r8,r2,12
- ld r8,r3,20 ; subtract 4 + 8r limbs
- subu.cio r6,r6,r7
- ld r9,r4,20
- st r6,r2,16
- ld r6,r3,24 ; subtract 3 + 8r limbs
- subu.cio r8,r8,r9
- ld r7,r4,24
- st r8,r2,20
- ld r8,r3,28 ; subtract 2 + 8r limbs
- subu.cio r6,r6,r7
- ld r9,r4,28
- st r6,r2,24
- bcnd.n ne0,r10,Loop ; subtract 1 + 8r limbs
- subu.cio r8,r8,r9
-
- st r8,r2,28 ; store most significant limb
-
- addu.ci r2,r0,r0 ; return carry-out from most sign. limb
- jmp.n r1
- xor r2,r2,1
diff --git a/sysdeps/m88k/m88110/add_n.S b/sysdeps/m88k/m88110/add_n.S
deleted file mode 100644
index 3c90674..0000000
--- a/sysdeps/m88k/m88110/add_n.S
+++ /dev/null
@@ -1,200 +0,0 @@
-; mc88110 __mpn_add_n -- Add two limb vectors of the same length > 0 and store
-; sum in a third limb vector.
-
-; Copyright (C) 1995, 1996 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, write to
-; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-; MA 02111-1307, USA.
-
-
-; INPUT PARAMETERS
-#define res_ptr r2
-#define s1_ptr r3
-#define s2_ptr r4
-#define size r5
-
-#include "sysdep.h"
-
- text
- align 16
- global C_SYMBOL_NAME(__mpn_add_n)
-C_SYMBOL_NAME(__mpn_add_n):
- addu.co r0,r0,r0 ; clear cy flag
- xor r12,s2_ptr,res_ptr
- bb1 2,r12,L1
-; ** V1a **
-L0: bb0 2,res_ptr,L_v1 ; branch if res_ptr is aligned?
-/* Add least significant limb separately to align res_ptr and s2_ptr */
- ld r10,s1_ptr,0
- addu s1_ptr,s1_ptr,4
- ld r8,s2_ptr,0
- addu s2_ptr,s2_ptr,4
- subu size,size,1
- addu.co r6,r10,r8
- st r6,res_ptr,0
- addu res_ptr,res_ptr,4
-L_v1: cmp r12,size,2
- bb1 lt,r12,Lend2
-
- ld r10,s1_ptr,0
- ld r12,s1_ptr,4
- ld.d r8,s2_ptr,0
- subu size,size,10
- bcnd lt0,size,Lfin1
-/* Add blocks of 8 limbs until less than 8 limbs remain */
- align 8
-Loop1: subu size,size,8
- addu.cio r6,r10,r8
- ld r10,s1_ptr,8
- addu.cio r7,r12,r9
- ld r12,s1_ptr,12
- ld.d r8,s2_ptr,8
- st.d r6,res_ptr,0
- addu.cio r6,r10,r8
- ld r10,s1_ptr,16
- addu.cio r7,r12,r9
- ld r12,s1_ptr,20
- ld.d r8,s2_ptr,16
- st.d r6,res_ptr,8
- addu.cio r6,r10,r8
- ld r10,s1_ptr,24
- addu.cio r7,r12,r9
- ld r12,s1_ptr,28
- ld.d r8,s2_ptr,24
- st.d r6,res_ptr,16
- addu.cio r6,r10,r8
- ld r10,s1_ptr,32
- addu.cio r7,r12,r9
- ld r12,s1_ptr,36
- addu s1_ptr,s1_ptr,32
- ld.d r8,s2_ptr,32
- addu s2_ptr,s2_ptr,32
- st.d r6,res_ptr,24
- addu res_ptr,res_ptr,32
- bcnd ge0,size,Loop1
-
-Lfin1: addu size,size,8-2
- bcnd lt0,size,Lend1
-/* Add blocks of 2 limbs until less than 2 limbs remain */
-Loope1: addu.cio r6,r10,r8
- ld r10,s1_ptr,8
- addu.cio r7,r12,r9
- ld r12,s1_ptr,12
- ld.d r8,s2_ptr,8
- st.d r6,res_ptr,0
- subu size,size,2
- addu s1_ptr,s1_ptr,8
- addu s2_ptr,s2_ptr,8
- addu res_ptr,res_ptr,8
- bcnd ge0,size,Loope1
-Lend1: addu.cio r6,r10,r8
- addu.cio r7,r12,r9
- st.d r6,res_ptr,0
-
- bb0 0,size,Lret1
-/* Add last limb */
- ld r10,s1_ptr,8
- ld r8,s2_ptr,8
- addu.cio r6,r10,r8
- st r6,res_ptr,8
-
-Lret1: jmp.n r1
- addu.ci r2,r0,r0 ; return carry-out from most sign. limb
-
-L1: xor r12,s1_ptr,res_ptr
- bb1 2,r12,L2
-; ** V1b **
- or r12,r0,s2_ptr
- or s2_ptr,r0,s1_ptr
- or s1_ptr,r0,r12
- br L0
-
-; ** V2 **
-/* If we come here, the alignment of s1_ptr and res_ptr as well as the
- alignment of s2_ptr and res_ptr differ. Since there are only two ways
- things can be aligned (that we care about) we now know that the alignment
- of s1_ptr and s2_ptr are the same. */
-
-L2: cmp r12,size,1
- bb1 eq,r12,Ljone
- bb0 2,s1_ptr,L_v2 ; branch if s1_ptr is aligned
-/* Add least significant limb separately to align res_ptr and s2_ptr */
- ld r10,s1_ptr,0
- addu s1_ptr,s1_ptr,4
- ld r8,s2_ptr,0
- addu s2_ptr,s2_ptr,4
- subu size,size,1
- addu.co r6,r10,r8
- st r6,res_ptr,0
- addu res_ptr,res_ptr,4
-
-L_v2: subu size,size,8
- bcnd lt0,size,Lfin2
-/* Add blocks of 8 limbs until less than 8 limbs remain */
- align 8
-Loop2: subu size,size,8
- ld.d r8,s1_ptr,0
- ld.d r6,s2_ptr,0
- addu.cio r8,r8,r6
- st r8,res_ptr,0
- addu.cio r9,r9,r7
- st r9,res_ptr,4
- ld.d r8,s1_ptr,8
- ld.d r6,s2_ptr,8
- addu.cio r8,r8,r6
- st r8,res_ptr,8
- addu.cio r9,r9,r7
- st r9,res_ptr,12
- ld.d r8,s1_ptr,16
- ld.d r6,s2_ptr,16
- addu.cio r8,r8,r6
- st r8,res_ptr,16
- addu.cio r9,r9,r7
- st r9,res_ptr,20
- ld.d r8,s1_ptr,24
- ld.d r6,s2_ptr,24
- addu.cio r8,r8,r6
- st r8,res_ptr,24
- addu.cio r9,r9,r7
- st r9,res_ptr,28
- addu s1_ptr,s1_ptr,32
- addu s2_ptr,s2_ptr,32
- addu res_ptr,res_ptr,32
- bcnd ge0,size,Loop2
-
-Lfin2: addu size,size,8-2
- bcnd lt0,size,Lend2
-Loope2: ld.d r8,s1_ptr,0
- ld.d r6,s2_ptr,0
- addu.cio r8,r8,r6
- st r8,res_ptr,0
- addu.cio r9,r9,r7
- st r9,res_ptr,4
- subu size,size,2
- addu s1_ptr,s1_ptr,8
- addu s2_ptr,s2_ptr,8
- addu res_ptr,res_ptr,8
- bcnd ge0,size,Loope2
-Lend2: bb0 0,size,Lret2
-/* Add last limb */
-Ljone: ld r10,s1_ptr,0
- ld r8,s2_ptr,0
- addu.cio r6,r10,r8
- st r6,res_ptr,0
-
-Lret2: jmp.n r1
- addu.ci r2,r0,r0 ; return carry-out from most sign. limb
diff --git a/sysdeps/m88k/m88110/addmul_1.s b/sysdeps/m88k/m88110/addmul_1.s
deleted file mode 100644
index a9845ef..0000000
--- a/sysdeps/m88k/m88110/addmul_1.s
+++ /dev/null
@@ -1,61 +0,0 @@
-; mc88110 __mpn_addmul_1 -- Multiply a limb vector with a single limb and
-; store the product in a second limb vector.
-
-; Copyright (C) 1996 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, write to
-; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-; MA 02111-1307, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; size r4
-; s2_limb r5
-
- text
- align 16
- global ___mpn_addmul_1
-___mpn_addmul_1:
- lda r3,r3[r4]
- lda r8,r2[r4] ; RES_PTR in r8 since r2 is retval
- subu r4,r0,r4
- addu.co r2,r0,r0 ; r2 = cy = 0
-
- ld r6,r3[r4]
- addu r4,r4,1
- subu r8,r8,4
- bcnd.n eq0,r4,Lend
- mulu.d r10,r6,r5
-
-Loop: ld r7,r8[r4]
- ld r6,r3[r4]
- addu.cio r9,r11,r2
- addu.ci r2,r10,r0
- addu.co r9,r9,r7
- st r9,r8[r4]
- addu r4,r4,1
- mulu.d r10,r6,r5
- bcnd ne0,r4,Loop
-
-Lend: ld r7,r8,0
- addu.cio r9,r11,r2
- addu.ci r2,r10,r0
- addu.co r9,r9,r7
- st r9,r8,0
- jmp.n r1
- addu.ci r2,r2,r0
diff --git a/sysdeps/m88k/m88110/mul_1.S b/sysdeps/m88k/m88110/mul_1.S
deleted file mode 100644
index 7a07623..0000000
--- a/sysdeps/m88k/m88110/mul_1.S
+++ /dev/null
@@ -1,80 +0,0 @@
-; mc88110 __mpn_mul_1 -- Multiply a limb vector with a single limb and
-; store the product in a second limb vector.
-
-; Copyright (C) 1992, 1994 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 General Public License as published by
-; the Free Software Foundation; either version 2, 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 General Public License for more details.
-
-; You should have received a copy of the GNU General Public License
-; along with the GNU MP Library; see the file COPYING. If not, write to
-; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; size r4
-; s2_limb r5
-
-#include "sysdep.h"
-
-ENTRY (__mpn_mul_1)
- ld r6,r3,0
- sub r4,r0,r4
- sub r3,r3,r4 ; r3 is offset s1_ptr
- sub r2,r2,r4
- sub r8,r2,8 ; r8 is offset res_ptr
- mulu.d r10,r6,r5
-
- addu r4,r4,1
- bcnd eq0,r4,Lend
- addu.co r2,r0,0 ; clear cy_limb
-
-Loop: ld r6,r3[r4]
- addu.cio r9,r11,r2
- or r2,r10,r0 ; could be avoided if unrolled
- addu r4,r4,1
- mulu.d r10,r6,r5
- bcnd ne0,r4,Loop
- st r9,r8[r4]
-
-Lend: addu.cio r9,r11,r2
- st r9,r8,4
- jmp.n r1
- addu.ci r2,r10,r0
-
-; This is the Right Way to do this on '110. 4 cycles / 64-bit limb.
-; ld.d r10,
-; mulu.d
-; addu.cio
-; addu.cio
-; st.d
-; mulu.d ,r11,r5
-; ld.d r12,
-; mulu.d ,r10,r5
-; addu.cio
-; addu.cio
-; st.d
-; mulu.d
-; ld.d r10,
-; mulu.d
-; addu.cio
-; addu.cio
-; st.d
-; mulu.d
-; ld.d r10,
-; mulu.d
-; addu.cio
-; addu.cio
-; st.d
-; mulu.d
diff --git a/sysdeps/m88k/m88110/mul_1.s b/sysdeps/m88k/m88110/mul_1.s
deleted file mode 100644
index 103869d..0000000
--- a/sysdeps/m88k/m88110/mul_1.s
+++ /dev/null
@@ -1,59 +0,0 @@
-; mc88110 __mpn_mul_1 -- Multiply a limb vector with a single limb and
-; store the product in a second limb vector.
-
-; Copyright (C) 1992, 1994, 1995 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, write to
-; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-; MA 02111-1307, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; size r4
-; s2_limb r5
-
- text
- align 16
- global ___mpn_mul_1
-___mpn_mul_1:
- ; Make S1_PTR and RES_PTR point at the end of their blocks
- ; and negate SIZE.
- lda r3,r3[r4]
- lda r8,r2[r4] ; RES_PTR in r8 since r2 is retval
- subu r4,r0,r4
-
- addu.co r2,r0,r0 ; r2 = cy = 0
-
- ld r6,r3[r4]
- addu r4,r4,1
- mulu.d r10,r6,r5
- bcnd.n eq0,r4,Lend
- subu r8,r8,8
-
-Loop: ld r6,r3[r4]
- addu.cio r9,r11,r2
- or r2,r10,r0 ; could be avoided if unrolled
- addu r4,r4,1
- mulu.d r10,r6,r5
- bcnd.n ne0,r4,Loop
- st r9,r8[r4]
-
-Lend: addu.cio r9,r11,r2
- st r9,r8,4
- jmp.n r1
- addu.ci r2,r10,r0
diff --git a/sysdeps/m88k/m88110/sub_n.S b/sysdeps/m88k/m88110/sub_n.S
deleted file mode 100644
index a937882..0000000
--- a/sysdeps/m88k/m88110/sub_n.S
+++ /dev/null
@@ -1,276 +0,0 @@
-; mc88110 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
-; store difference in a third limb vector.
-
-; Copyright (C) 1995, 1996 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, write to
-; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-; MA 02111-1307, USA.
-
-
-; INPUT PARAMETERS
-#define res_ptr r2
-#define s1_ptr r3
-#define s2_ptr r4
-#define size r5
-
-#include "sysdep.h"
-
- text
- align 16
- global C_SYMBOL_NAME(__mpn_sub_n)
-C_SYMBOL_NAME(__mpn_sub_n):
- subu.co r0,r0,r0 ; set cy flag
- xor r12,s2_ptr,res_ptr
- bb1 2,r12,L1
-; ** V1a **
-L0: bb0 2,res_ptr,L_v1 ; branch if res_ptr is aligned
-/* Add least significant limb separately to align res_ptr and s2_ptr */
- ld r10,s1_ptr,0
- addu s1_ptr,s1_ptr,4
- ld r8,s2_ptr,0
- addu s2_ptr,s2_ptr,4
- subu size,size,1
- subu.co r6,r10,r8
- st r6,res_ptr,0
- addu res_ptr,res_ptr,4
-L_v1: cmp r12,size,2
- bb1 lt,r12,Lend2
-
- ld r10,s1_ptr,0
- ld r12,s1_ptr,4
- ld.d r8,s2_ptr,0
- subu size,size,10
- bcnd lt0,size,Lfin1
-/* Add blocks of 8 limbs until less than 8 limbs remain */
- align 8
-Loop1: subu size,size,8
- subu.cio r6,r10,r8
- ld r10,s1_ptr,8
- subu.cio r7,r12,r9
- ld r12,s1_ptr,12
- ld.d r8,s2_ptr,8
- st.d r6,res_ptr,0
- subu.cio r6,r10,r8
- ld r10,s1_ptr,16
- subu.cio r7,r12,r9
- ld r12,s1_ptr,20
- ld.d r8,s2_ptr,16
- st.d r6,res_ptr,8
- subu.cio r6,r10,r8
- ld r10,s1_ptr,24
- subu.cio r7,r12,r9
- ld r12,s1_ptr,28
- ld.d r8,s2_ptr,24
- st.d r6,res_ptr,16
- subu.cio r6,r10,r8
- ld r10,s1_ptr,32
- subu.cio r7,r12,r9
- ld r12,s1_ptr,36
- addu s1_ptr,s1_ptr,32
- ld.d r8,s2_ptr,32
- addu s2_ptr,s2_ptr,32
- st.d r6,res_ptr,24
- addu res_ptr,res_ptr,32
- bcnd ge0,size,Loop1
-
-Lfin1: addu size,size,8-2
- bcnd lt0,size,Lend1
-/* Add blocks of 2 limbs until less than 2 limbs remain */
-Loope1: subu.cio r6,r10,r8
- ld r10,s1_ptr,8
- subu.cio r7,r12,r9
- ld r12,s1_ptr,12
- ld.d r8,s2_ptr,8
- st.d r6,res_ptr,0
- subu size,size,2
- addu s1_ptr,s1_ptr,8
- addu s2_ptr,s2_ptr,8
- addu res_ptr,res_ptr,8
- bcnd ge0,size,Loope1
-Lend1: subu.cio r6,r10,r8
- subu.cio r7,r12,r9
- st.d r6,res_ptr,0
-
- bb0 0,size,Lret1
-/* Add last limb */
- ld r10,s1_ptr,8
- ld r8,s2_ptr,8
- subu.cio r6,r10,r8
- st r6,res_ptr,8
-
-Lret1: addu.ci r2,r0,r0 ; return carry-out from most sign. limb
- jmp.n r1
- xor r2,r2,1
-
-L1: xor r12,s1_ptr,res_ptr
- bb1 2,r12,L2
-; ** V1b **
- bb0 2,res_ptr,L_v1b ; branch if res_ptr is aligned
-/* Add least significant limb separately to align res_ptr and s1_ptr */
- ld r10,s2_ptr,0
- addu s2_ptr,s2_ptr,4
- ld r8,s1_ptr,0
- addu s1_ptr,s1_ptr,4
- subu size,size,1
- subu.co r6,r8,r10
- st r6,res_ptr,0
- addu res_ptr,res_ptr,4
-L_v1b: cmp r12,size,2
- bb1 lt,r12,Lend2
-
- ld r10,s2_ptr,0
- ld r12,s2_ptr,4
- ld.d r8,s1_ptr,0
- subu size,size,10
- bcnd lt0,size,Lfin1b
-/* Add blocks of 8 limbs until less than 8 limbs remain */
- align 8
-Loop1b: subu size,size,8
- subu.cio r6,r8,r10
- ld r10,s2_ptr,8
- subu.cio r7,r9,r12
- ld r12,s2_ptr,12
- ld.d r8,s1_ptr,8
- st.d r6,res_ptr,0
- subu.cio r6,r8,r10
- ld r10,s2_ptr,16
- subu.cio r7,r9,r12
- ld r12,s2_ptr,20
- ld.d r8,s1_ptr,16
- st.d r6,res_ptr,8
- subu.cio r6,r8,r10
- ld r10,s2_ptr,24
- subu.cio r7,r9,r12
- ld r12,s2_ptr,28
- ld.d r8,s1_ptr,24
- st.d r6,res_ptr,16
- subu.cio r6,r8,r10
- ld r10,s2_ptr,32
- subu.cio r7,r9,r12
- ld r12,s2_ptr,36
- addu s2_ptr,s2_ptr,32
- ld.d r8,s1_ptr,32
- addu s1_ptr,s1_ptr,32
- st.d r6,res_ptr,24
- addu res_ptr,res_ptr,32
- bcnd ge0,size,Loop1b
-
-Lfin1b: addu size,size,8-2
- bcnd lt0,size,Lend1b
-/* Add blocks of 2 limbs until less than 2 limbs remain */
-Loope1b:subu.cio r6,r8,r10
- ld r10,s2_ptr,8
- subu.cio r7,r9,r12
- ld r12,s2_ptr,12
- ld.d r8,s1_ptr,8
- st.d r6,res_ptr,0
- subu size,size,2
- addu s1_ptr,s1_ptr,8
- addu s2_ptr,s2_ptr,8
- addu res_ptr,res_ptr,8
- bcnd ge0,size,Loope1b
-Lend1b: subu.cio r6,r8,r10
- subu.cio r7,r9,r12
- st.d r6,res_ptr,0
-
- bb0 0,size,Lret1b
-/* Add last limb */
- ld r10,s2_ptr,8
- ld r8,s1_ptr,8
- subu.cio r6,r8,r10
- st r6,res_ptr,8
-
-Lret1b: addu.ci r2,r0,r0 ; return carry-out from most sign. limb
- jmp.n r1
- xor r2,r2,1
-
-; ** V2 **
-/* If we come here, the alignment of s1_ptr and res_ptr as well as the
- alignment of s2_ptr and res_ptr differ. Since there are only two ways
- things can be aligned (that we care about) we now know that the alignment
- of s1_ptr and s2_ptr are the same. */
-
-L2: cmp r12,size,1
- bb1 eq,r12,Ljone
- bb0 2,s1_ptr,L_v2 ; branch if s1_ptr is aligned
-/* Add least significant limb separately to align res_ptr and s2_ptr */
- ld r10,s1_ptr,0
- addu s1_ptr,s1_ptr,4
- ld r8,s2_ptr,0
- addu s2_ptr,s2_ptr,4
- subu size,size,1
- subu.co r6,r10,r8
- st r6,res_ptr,0
- addu res_ptr,res_ptr,4
-
-L_v2: subu size,size,8
- bcnd lt0,size,Lfin2
-/* Add blocks of 8 limbs until less than 8 limbs remain */
- align 8
-Loop2: subu size,size,8
- ld.d r8,s1_ptr,0
- ld.d r6,s2_ptr,0
- subu.cio r8,r8,r6
- st r8,res_ptr,0
- subu.cio r9,r9,r7
- st r9,res_ptr,4
- ld.d r8,s1_ptr,8
- ld.d r6,s2_ptr,8
- subu.cio r8,r8,r6
- st r8,res_ptr,8
- subu.cio r9,r9,r7
- st r9,res_ptr,12
- ld.d r8,s1_ptr,16
- ld.d r6,s2_ptr,16
- subu.cio r8,r8,r6
- st r8,res_ptr,16
- subu.cio r9,r9,r7
- st r9,res_ptr,20
- ld.d r8,s1_ptr,24
- ld.d r6,s2_ptr,24
- subu.cio r8,r8,r6
- st r8,res_ptr,24
- subu.cio r9,r9,r7
- st r9,res_ptr,28
- addu s1_ptr,s1_ptr,32
- addu s2_ptr,s2_ptr,32
- addu res_ptr,res_ptr,32
- bcnd ge0,size,Loop2
-
-Lfin2: addu size,size,8-2
- bcnd lt0,size,Lend2
-Loope2: ld.d r8,s1_ptr,0
- ld.d r6,s2_ptr,0
- subu.cio r8,r8,r6
- st r8,res_ptr,0
- subu.cio r9,r9,r7
- st r9,res_ptr,4
- subu size,size,2
- addu s1_ptr,s1_ptr,8
- addu s2_ptr,s2_ptr,8
- addu res_ptr,res_ptr,8
- bcnd ge0,size,Loope2
-Lend2: bb0 0,size,Lret2
-/* Add last limb */
-Ljone: ld r10,s1_ptr,0
- ld r8,s2_ptr,0
- subu.cio r6,r10,r8
- st r6,res_ptr,0
-
-Lret2: addu.ci r2,r0,r0 ; return carry-out from most sign. limb
- jmp.n r1
- xor r2,r2,1
diff --git a/sysdeps/m88k/mul_1.s b/sysdeps/m88k/mul_1.s
deleted file mode 100644
index 7aa6d64..0000000
--- a/sysdeps/m88k/mul_1.s
+++ /dev/null
@@ -1,127 +0,0 @@
-; mc88100 __mpn_mul_1 -- Multiply a limb vector with a single limb and
-; store the product in a second limb vector.
-
-; Copyright (C) 1992, 1994, 1995 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, write to
-; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-; MA 02111-1307, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; size r4
-; s2_limb r5
-
-; Common overhead is about 11 cycles/invocation.
-
-; The speed for S2_LIMB >= 0x10000 is approximately 21 cycles/limb. (The
-; pipeline stalls 2 cycles due to WB contention.)
-
-; The speed for S2_LIMB < 0x10000 is approximately 16 cycles/limb. (The
-; pipeline stalls 2 cycles due to WB contention and 1 cycle due to latency.)
-
-; To enhance speed:
-; 1. Unroll main loop 4-8 times.
-; 2. Schedule code to avoid WB contention. It might be tempting to move the
-; ld instruction in the loops down to save 2 cycles (less WB contention),
-; but that looses because the ultimate value will be read from outside
-; the allocated space. But if we handle the ultimate multiplication in
-; the tail, we can do this.
-; 3. Make the multiplication with less instructions. I think the code for
-; (S2_LIMB >= 0x10000) is not minimal.
-; With these techniques the (S2_LIMB >= 0x10000) case would run in 17 or
-; less cycles/limb; the (S2_LIMB < 0x10000) case would run in 11
-; cycles/limb. (Assuming infinite unrolling.)
-
- text
- align 16
- global ___mpn_mul_1
-___mpn_mul_1:
-
- ; Make S1_PTR and RES_PTR point at the end of their blocks
- ; and negate SIZE.
- lda r3,r3[r4]
- lda r6,r2[r4] ; RES_PTR in r6 since r2 is retval
- subu r4,r0,r4
-
- addu.co r2,r0,r0 ; r2 = cy = 0
- ld r9,r3[r4]
- mask r7,r5,0xffff ; r7 = lo(S2_LIMB)
- extu r8,r5,16 ; r8 = hi(S2_LIMB)
- bcnd.n eq0,r8,Lsmall ; jump if (hi(S2_LIMB) == 0)
- subu r6,r6,4
-
-; General code for any value of S2_LIMB.
-
- ; Make a stack frame and save r25 and r26
- subu r31,r31,16
- st.d r25,r31,8
-
- ; Enter the loop in the middle
- br.n L1
- addu r4,r4,1
-
-Loop: ld r9,r3[r4]
- st r26,r6[r4]
-; bcnd ne0,r0,0 ; bubble
- addu r4,r4,1
-L1: mul r26,r9,r5 ; low word of product mul_1 WB ld
- mask r12,r9,0xffff ; r12 = lo(s1_limb) mask_1
- mul r11,r12,r7 ; r11 = prod_0 mul_2 WB mask_1
- mul r10,r12,r8 ; r10 = prod_1a mul_3
- extu r13,r9,16 ; r13 = hi(s1_limb) extu_1 WB mul_1
- mul r12,r13,r7 ; r12 = prod_1b mul_4 WB extu_1
- mul r25,r13,r8 ; r25 = prod_2 mul_5 WB mul_2
- extu r11,r11,16 ; r11 = hi(prod_0) extu_2 WB mul_3
- addu r10,r10,r11 ; addu_1 WB extu_2
-; bcnd ne0,r0,0 ; bubble WB addu_1
- addu.co r10,r10,r12 ; WB mul_4
- mask.u r10,r10,0xffff ; move the 16 most significant bits...
- addu.ci r10,r10,r0 ; ...to the low half of the word...
- rot r10,r10,16 ; ...and put carry in pos 16.
- addu.co r26,r26,r2 ; add old carry limb
- bcnd.n ne0,r4,Loop
- addu.ci r2,r25,r10 ; compute new carry limb
-
- st r26,r6[r4]
- ld.d r25,r31,8
- jmp.n r1
- addu r31,r31,16
-
-; Fast code for S2_LIMB < 0x10000
-Lsmall:
- ; Enter the loop in the middle
- br.n SL1
- addu r4,r4,1
-
-SLoop: ld r9,r3[r4] ;
- st r8,r6[r4] ;
- addu r4,r4,1 ;
-SL1: mul r8,r9,r5 ; low word of product
- mask r12,r9,0xffff ; r12 = lo(s1_limb)
- extu r13,r9,16 ; r13 = hi(s1_limb)
- mul r11,r12,r7 ; r11 = prod_0
- mul r12,r13,r7 ; r12 = prod_1b
- addu.cio r8,r8,r2 ; add old carry limb
- extu r10,r11,16 ; r11 = hi(prod_0)
- addu r10,r10,r12 ;
- bcnd.n ne0,r4,SLoop
- extu r2,r10,16 ; r2 = new carry limb
-
- jmp.n r1
- st r8,r6[r4]
diff --git a/sysdeps/m88k/sub_n.s b/sysdeps/m88k/sub_n.s
deleted file mode 100644
index 7616dc4..0000000
--- a/sysdeps/m88k/sub_n.s
+++ /dev/null
@@ -1,106 +0,0 @@
-; mc88100 __mpn_sub -- Subtract two limb vectors of the same length > 0 and
-; store difference in a third limb vector.
-
-; Copyright (C) 1992, 1994, 1996 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, write to
-; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-; MA 02111-1307, USA.
-
-
-; INPUT PARAMETERS
-; res_ptr r2
-; s1_ptr r3
-; s2_ptr r4
-; size r5
-
-; This code has been optimized to run one instruction per clock, avoiding
-; load stalls and writeback contention. As a result, the instruction
-; order is not always natural.
-
-; The speed is about 4.6 clocks/limb + 18 clocks/limb-vector on an 88100,
-; but on the 88110, it seems to run much slower, 6.6 clocks/limb.
-
- text
- align 16
- global ___mpn_sub_n
-___mpn_sub_n:
- ld r6,r3,0 ; read first limb from s1_ptr
- extu r10,r5,3
- ld r7,r4,0 ; read first limb from s2_ptr
-
- subu r5,r0,r5
- mak r5,r5,3<4>
- bcnd.n eq0,r5,Lzero
- subu.co r0,r0,r0 ; initialize carry
-
- or r12,r0,lo16(Lbase)
- or.u r12,r12,hi16(Lbase)
- addu r12,r12,r5 ; r12 is address for entering in loop
-
- extu r5,r5,2 ; divide by 4
- subu r2,r2,r5 ; adjust res_ptr
- subu r3,r3,r5 ; adjust s1_ptr
- subu r4,r4,r5 ; adjust s2_ptr
-
- or r8,r6,r0
-
- jmp.n r12
- or r9,r7,r0
-
-Loop: addu r3,r3,32
- st r8,r2,28
- addu r4,r4,32
- ld r6,r3,0
- addu r2,r2,32
- ld r7,r4,0
-Lzero: subu r10,r10,1 ; subtract 0 + 8r limbs (adj loop cnt)
-Lbase: ld r8,r3,4
- subu.cio r6,r6,r7
- ld r9,r4,4
- st r6,r2,0
- ld r6,r3,8 ; subtract 7 + 8r limbs
- subu.cio r8,r8,r9
- ld r7,r4,8
- st r8,r2,4
- ld r8,r3,12 ; subtract 6 + 8r limbs
- subu.cio r6,r6,r7
- ld r9,r4,12
- st r6,r2,8
- ld r6,r3,16 ; subtract 5 + 8r limbs
- subu.cio r8,r8,r9
- ld r7,r4,16
- st r8,r2,12
- ld r8,r3,20 ; subtract 4 + 8r limbs
- subu.cio r6,r6,r7
- ld r9,r4,20
- st r6,r2,16
- ld r6,r3,24 ; subtract 3 + 8r limbs
- subu.cio r8,r8,r9
- ld r7,r4,24
- st r8,r2,20
- ld r8,r3,28 ; subtract 2 + 8r limbs
- subu.cio r6,r6,r7
- ld r9,r4,28
- st r6,r2,24
- bcnd.n ne0,r10,Loop ; subtract 1 + 8r limbs
- subu.cio r8,r8,r9
-
- st r8,r2,28 ; store most significant limb
-
- addu.ci r2,r0,r0 ; return carry-out from most sign. limb
- jmp.n r1
- xor r2,r2,1
diff --git a/sysdeps/standalone/Dist b/sysdeps/standalone/Dist
deleted file mode 100644
index b6b12b7..0000000
--- a/sysdeps/standalone/Dist
+++ /dev/null
@@ -1,2 +0,0 @@
-filedesc.h
-standalone.h
diff --git a/sysdeps/standalone/Subdirs b/sysdeps/standalone/Subdirs
deleted file mode 100644
index 4125ae8..0000000
--- a/sysdeps/standalone/Subdirs
+++ /dev/null
@@ -1,4 +0,0 @@
-# The `bare' subdirectory defines some structure for a target-specific
-# library of functions which are actually implemented in
-# sysdeps/standalone/CPU/TARGET.
-bare
diff --git a/sysdeps/standalone/arm/bits/errno.h b/sysdeps/standalone/arm/bits/errno.h
deleted file mode 100644
index 8e10754..0000000
--- a/sysdeps/standalone/arm/bits/errno.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 1991,1994,1996,1997,1998,2004 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* This file defines the `errno' constants for standalone ARM machines.
- These constants are essentially arbitrary. */
-
-#if !defined __Emath_defined && (defined _ERRNO_H || defined __need_Emath)
-# undef __need_Emath
-# define __Emath_defined 1
-
-# define EDOM 1
-# define ERANGE 2
-#endif
-
-#ifdef _ERRNO_H
-# define ENOSYS 3
-# define EINVAL 4
-# define ESPIPE 5
-# define EBADF 6
-# define ENOMEM 7
-# define EACCES 8
-# define ENFILE 9
-# define EMFILE 10
-# define ENAMETOOLONG 11 /* File name too long */
-# define ELOOP 12 /* Too many symbolic links encountered */
-# define ENOMSG 13 /* No message of desired type */
-# define E2BIG 14 /* Arg list too long */
-# define EINTR 15
-# define EILSEQ 16
-# define ENOEXEC 17
-# define ENOENT 18
-# define EPROTOTYPE 19
-# define ESRCH 20
-# define EPERM 21
-# define ENOTDIR 22
-# define ESTALE 23
-# define EISDIR 24
-# define EOPNOTSUPP 25 /* Operation not supported. */
-# define ENOTTY 26
-# define EAGAIN 27
-# define EIO 28
-# define ENOSPC 29
-# define EEXIST 30
-# define EBUSY 31
-# define EOVERFLOW 32
-#endif
-
-
-/* Function to get address of global `errno' variable. */
-extern int *__errno_location (void) __THROW __attribute__ ((__const__));
diff --git a/sysdeps/standalone/arm/sysdep.c b/sysdeps/standalone/arm/sysdep.c
deleted file mode 100644
index 8c17234..0000000
--- a/sysdeps/standalone/arm/sysdep.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1995, 1996, 1997 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-
-/* errno has to be defined somewhere, and it might as well be here. */
-int errno = 0;
-
-/* The same goes for these magic signal functions. This is a standalone
- environment so we do nothing. */
-void _sig_dfl(int sig)
-{
-}
-
-void _sig_ign(int sig)
-{
-}
diff --git a/sysdeps/standalone/bits/errno.h b/sysdeps/standalone/bits/errno.h
deleted file mode 100644
index 217c6d5..0000000
--- a/sysdeps/standalone/bits/errno.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 1991, 1994, 1996, 1997, 1998 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* This file defines the `errno' constants. */
-
-#if !defined __Emath_defined && (defined _ERRNO_H || defined __need_Emath)
-#undef __need_Emath
-#define __Emath_defined 1
-
-# define EDOM 1
-# define EILSEQ 17
-# define ERANGE 2
-#endif
-
-#ifdef _ERRNO_H
-# define ENOSYS 3
-# define EINVAL 4
-# define ESPIPE 5
-# define EBADF 6
-# define ENOMEM 7
-# define EACCES 8
-# define ENFILE 9
-# define EMFILE 10
-# define ENOMSG 11
-# define ENAMETOOLONG 12
-# define ELOOP 13
-# define E2BIG 15
-# define EINTR 16
-# define ENOEXEC 18
-# define ENOENT 19
-# define EPROTOTYPE 20
-# define ESRCH 21
-# define EPERM 22
-# define EEXIST 23
-# define ENOTDIR 24
-# define ESTALE 25
-# define ENOTTY 26
-# define EISDIR 27
-# define EOPNOTSUPP 28
-# define EAGAIN 29
-# define EIO 30
-# define ENOSPC 31
-# define EBUSY 32
-#endif
diff --git a/sysdeps/standalone/brk.c b/sysdeps/standalone/brk.c
deleted file mode 100644
index 32e148e..0000000
--- a/sysdeps/standalone/brk.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright (C) 1991, 1994, 1995, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stdlib.h>
-
-void *__curbrk;
-void *__rorig;
-void *__rlimit;
-
-int
-__brk (inaddr)
- void *inaddr;
-{
-
- if ( ( (void *)inaddr > (void *)__rlimit ) ||
- ( (void *)inaddr < (void *)__rorig ) )
- return -1;
-
- __curbrk = inaddr;
- return 0;
-}
-
-/* Initialization Code for Memory Allocation */
-
-void *__C_heap_start;
-int __C_heap_size;
-
-#ifdef HAVE_GNU_LD
-static
-#endif
-void
-__NONE_set_memvals (argc, argv, envp)
- int argc;
- char **argv;
- char **envp;
-{
-
- __rorig =
- __curbrk = __C_heap_start;
- __rlimit = __curbrk + __C_heap_size;
-
- (void) &__NONE_set_memvals; /* Avoid "defined but not used" warning. */
-}
-
-#ifdef HAVE_GNU_LD
-text_set_element (__libc_subinit, __NONE_set_memvals);
-#endif
-
-weak_alias (__brk, brk)
diff --git a/sysdeps/standalone/close.c b/sysdeps/standalone/close.c
deleted file mode 100644
index 8c2caf1..0000000
--- a/sysdeps/standalone/close.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1994, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
- Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <unistd.h>
-
-#define _STDIO_H
-#include <bits/stdio_lim.h>
-#include "filedesc.h"
-
-/* Close the file descriptor FD. */
-int
-__close (fd)
- int fd;
-{
- if ( !__FD_Is_valid( fd ) || !__FD_Table[ fd ].in_use )
- {
- __set_errno (EBADF);
- return -1;
- }
-
- __FD_Table[ fd ].in_use = 0;
- return 0;
-}
-libc_hidden_def (__close)
-weak_alias (__close, close)
diff --git a/sysdeps/standalone/dirstream.h b/sysdeps/standalone/dirstream.h
deleted file mode 100644
index 6f58294..0000000
--- a/sysdeps/standalone/dirstream.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 1993, 1997 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _DIRSTREAM_H
-
-#define _DIRSTREAM_H 1
-
-#define __need_size_t
-#include <stddef.h>
-
-/* Directory stream type.
-
- The miscellaneous Unix `readdir' implementations read directory data
- into a buffer and fill in a `struct dirent' copy in the `DIR' object. */
-
-struct __dirstream
- {
- int __fd; /* File descriptor. */
-
- char *__data; /* Directory block. */
- size_t __allocation; /* Space allocated for the block. */
- size_t __offset; /* Current offset into the block. */
- size_t __size; /* Total valid data in the block. */
-
- struct dirent __entry; /* Returned by `readdir'. */
- };
-
-#endif /* dirstream.h */
diff --git a/sysdeps/standalone/filedesc.h b/sysdeps/standalone/filedesc.h
deleted file mode 100644
index b7c15b5..0000000
--- a/sysdeps/standalone/filedesc.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 1994, 1997, 1998 Free Software Foundation, Inc.
- Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/*
- * This is the file descriptor used by the no OS implementation
- * of __open, __read, __write, and __close.
- */
-
-#ifndef __FILEDESC_h
-#define __FILEDESC_h
-
-#define __need_FOPEN_MAX
-#include <bits/stdio_lim.h>
-
-#ifndef __DECLARE_FILE_DESCRIPTORS__
-#define FILEDESC_EXTERN extern
-#else
-#define FILEDESC_EXTERN
-#endif
-
-typedef struct {
- int in_use; /* 1 if in use, 0 otherwise */
- int flags; /* Flags from open */
-} __no_os_file_descriptor;
-
-#define __FD_Is_valid( _fd ) \
- ( (_fd) >= 0 && (_fd) < FOPEN_MAX )
-
-FILEDESC_EXTERN __no_os_file_descriptor __FD_Table[ FOPEN_MAX ];
-
-#endif
diff --git a/sysdeps/standalone/i386/Dist b/sysdeps/standalone/i386/Dist
deleted file mode 100644
index 98d13be..0000000
--- a/sysdeps/standalone/i386/Dist
+++ /dev/null
@@ -1 +0,0 @@
-i386.h
diff --git a/sysdeps/standalone/i386/force_cpu386/Dist b/sysdeps/standalone/i386/force_cpu386/Dist
deleted file mode 100644
index 8b7b09e..0000000
--- a/sysdeps/standalone/i386/force_cpu386/Dist
+++ /dev/null
@@ -1 +0,0 @@
-target.ld
diff --git a/sysdeps/standalone/i386/force_cpu386/Makefile b/sysdeps/standalone/i386/force_cpu386/Makefile
deleted file mode 100644
index 5cb4f28..0000000
--- a/sysdeps/standalone/i386/force_cpu386/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (C) 1994, 1997 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
-# On-Line Applications Research Corporation.
-
-# 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, write to the Free
-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307 USA.
-
-ifeq (bare,$(subdir))
-install-others += $(inst_libdir)/force_cpu386.ld
-$(inst_libdir)/force_cpu386.ld: $(sysdep_dir)/standalone/i386/target.ld \
- $(+force)
- $(do-install)
-endif
diff --git a/sysdeps/standalone/i386/force_cpu386/_exit.c b/sysdeps/standalone/i386/force_cpu386/_exit.c
deleted file mode 100644
index 2da822e..0000000
--- a/sysdeps/standalone/i386/force_cpu386/_exit.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 1991, 1997, 1999, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <unistd.h>
-#include <stdlib.h>
-
-/* This returns control to FORCEbug. */
-
-void Bsp_cleanup (void);
-
-/* The function `_exit' should take a status argument and simply
- terminate program execution, using the low-order 8 bits of the
- given integer as status. */
-
-__NORETURN void
-_exit (status)
- int status;
-{
- /* status is ignored */
- Bsp_cleanup();
-}
-weak_alias (_exit, _Exit)
-
-#ifdef HAVE_GNU_LD
-
-#include <gnu-stabs.h>
-
-stub_warning(_exit);
-
-#endif /* GNU stabs. */
diff --git a/sysdeps/standalone/i386/force_cpu386/brdinit.c b/sysdeps/standalone/i386/force_cpu386/brdinit.c
deleted file mode 100644
index 8392ce5..0000000
--- a/sysdeps/standalone/i386/force_cpu386/brdinit.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 1994, 1997, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <standalone.h>
-#include "i386.h"
-
-/* _Board_Initialize()
-
-This routine initializes the FORCE CPU386 board. */
-
-void _Console_Initialize (void);
-
-void
-_Board_Initialize ()
-{
- /*
- * FORCE documentation incorrectly states that the bus request
- * level is initialized to 3. It is actually initialized by
- * FORCEbug to 0.
- */
-
- outport_byte (0x00, 0x3f); /* resets VMEbus request level */
-
- _Console_Initialize ();
-}
diff --git a/sysdeps/standalone/i386/force_cpu386/console.c b/sysdeps/standalone/i386/force_cpu386/console.c
deleted file mode 100644
index 4c7271b..0000000
--- a/sysdeps/standalone/i386/force_cpu386/console.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <standalone.h>
-#include "i386.h"
-
-/* Console IO routines for a FORCE CPU386 board. */
-
-/* Force CPU/386 specific IO addressing
- *
- * The following determines whether Port B or the Console should
- * be used for console I/O. Setting ONE (and only ONE) of these to 1
- * enables I/O on that port.
- *
- * PORT A - DUSCC MC68562 Channel A (*** not supported here ***)
- * PORT B - DUSCC MC68562 Channel B
- * PORT C - MFP MC68901 Channel (*** FORCEbug console ***)
- */
-
-#define PORTB 1 /* use port b as console */
-#define PORTC 0 /* use console port as console */
-
-#if ( PORTB == 1 )
-#define TX_STATUS 0x1b6 /* DUSCC General Status Register */
-#define RX_STATUS 0x1b6 /* DUSCC General Status Register */
-#define TX_BUFFER 0x1e0 /* DUSCC Transmitter Channel B */
-#define RX_BUFFER 0x1e8 /* DUSCC Receiver Channel B */
-#define Is_tx_ready( _status ) ( (_status) & 0x20 )
-#define Is_rx_ready( _status ) ( (_status) & 0x10 )
-#endif
-
-#if ( PORTC == 1 )
-#define TX_STATUS 0x12c /* MFP Transmit Status Register */
-#define RX_STATUS 0x12a /* MFP Receive Status Register */
-#define TX_BUFFER 0x12e /* MFP Transmitter Channel */
-#define RX_BUFFER 0x12e /* MFP Receiver Channel */
-#define Is_tx_ready( _status ) ( (_status) & 0x80 )
-#define Is_rx_ready( _status ) ( (_status) & 0x80 )
-#endif
-
-/* _Console_Initialize
-
-On the Force board the console require some initialization. */
-
-void
-_Console_Initialize ()
-{
- register unsigned8 ignored;
-
- /* FORCE technical support mentioned that it may be necessary to
- read the DUSCC RX_BUFFER port four times to remove all junk.
- This code is a little more paranoid. */
-
- inport_byte( RX_BUFFER, ignored );
- inport_byte( RX_BUFFER, ignored );
- inport_byte( RX_BUFFER, ignored );
- inport_byte( RX_BUFFER, ignored );
- inport_byte( RX_BUFFER, ignored );
-}
-
-/* Miscellaneous support for console IO */
-
-static inline int _Force386_is_rx_ready ()
-{
- register unsigned8 status;
-
- inport_byte( RX_STATUS, status );
-
- if ( Is_rx_ready( status ) ) return 1;
- else return 0;
-}
-
-static inline int _Force386_is_tx_ready ()
-{
- register unsigned8 status;
-
- inport_byte( TX_STATUS, status );
-
- if ( Is_tx_ready( status ) ) return 1;
- else return 0;
-}
-
-
-static inline int _Force386_read_data ()
-{
- register unsigned8 ch;
-
-#if ( PORTB == 1 )
- /* Force example code resets the Channel B Receiver here.
- * It appears to cause XON's to be lost.
- */
-
- /* outport_byte( RX_STATUS, 0x10 ); */
-#endif
-
- inport_byte( RX_BUFFER, ch );
-
- return ch;
-}
-
-/* _Console_Putc
-
-This routine transmits a character. It supports XON/XOFF flow control. */
-
-#define XON 0x11 /* control-Q */
-#define XOFF 0x13 /* control-S */
-
-int
-_Console_Putc (ch)
- char ch;
-{
- register unsigned8 inch;
-
- while ( !_Force386_is_tx_ready() );
-
- while ( _Force386_is_rx_ready() == 1 ) { /* must be an XOFF */
- inch = _Force386_read_data();
- if ( inch == XOFF )
- do {
- while ( _Force386_is_rx_ready() == 0 );
- inch = _Force386_read_data();
- } while ( inch != XON );
- }
-
- outport_byte( TX_BUFFER, ch );
- return( 0 );
-}
-
-/* _Console_Getc
-
-This routine reads a character from the UART and returns it. */
-
-int
-_Console_Getc (poll)
- int poll;
-{
- if ( poll ) {
- if ( !_Force386_is_rx_ready() )
- return -1;
- else
- return _Force386_read_data();
- } else {
- while ( !_Force386_is_rx_ready() );
- return _Force386_read_data();
- }
-}
diff --git a/sysdeps/standalone/i386/force_cpu386/strtsupp.S b/sysdeps/standalone/i386/force_cpu386/strtsupp.S
deleted file mode 100644
index 5d9ac5c..0000000
--- a/sysdeps/standalone/i386/force_cpu386/strtsupp.S
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* This file assists the board independent startup code by
- * loading the proper segment register values. The values
- * loaded are dependent on the FORCEBUG.
- *
- * NOTE: No stack has been established when this routine
- * is invoked. It returns by jumping back to the start code.
- *
- */
-
-/*
- * FORCEBUG loads us into a virtual address space which
- * really starts at PHYSICAL_ADDRESS_BASE.
- *
- */
-
-.set PHYSICAL_ADDRESS_BASE, 0x00002000
-
-/*
- * At reset time, FORCEBUG normally has the segment selectors preloaded.
- * If a human resets the instruction pointer, this will not have occurred.
- * However, no guarantee can be made of the other registers if cs:ip was
- * modified to restart the program. Because of this, the BSP reloads all
- * segment registers (except cs) with the values they have following
- * a reset.
- */
-
-
-.set RESET_SS, 0x40 # initial value of stack segment register
-.set RESET_DS, 0x40 # initial value of data segment register
-.set RESET_ES, 0x40 # initial value of extra segment register
-.set RESET_FS, 0x40 # initial value of "f" segment register
-.set RESET_GS, 0x30 # initial value of "g" segment register
-
-
-#define LOAD_SEGMENTS(_value,_segreg) \
- movw $_value##,%ax ; \
- movw %ax,##_segreg
-
-
- .global _load_segments
-
- .global _establish_stack
-
-_load_segments:
-
- LOAD_SEGMENTS( RESET_SS, %ss )
- LOAD_SEGMENTS( RESET_DS, %ds )
- LOAD_SEGMENTS( RESET_ES, %es )
- LOAD_SEGMENTS( RESET_FS, %fs )
- LOAD_SEGMENTS( RESET_GS, %gs )
-
- jmp _establish_stack # return to the bsp entry code
-
- .global _return_to_monitor
-_return_to_monitor:
-
- movb $0,%al
- int $0x20 # restart FORCEbug
- jmp start # FORCEbug does not reset PC
-
- .data
-
- .global _Do_Load_IDT
-_Do_Load_IDT: .byte 1
-
- .global _Do_Load_GDT
-_Do_Load_GDT: .byte 0
diff --git a/sysdeps/standalone/i386/force_cpu386/target.ld b/sysdeps/standalone/i386/force_cpu386/target.ld
deleted file mode 100644
index d040cf9..0000000
--- a/sysdeps/standalone/i386/force_cpu386/target.ld
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* This file contains directives for the GNU linker which are specific
-to the FORCE CPU386 board. */
-
-MEMORY
- {
- ram : org = 0x0, l = 1M
- }
-
-/* This value is also when the space is allocated. If you change
-this one, change the other one!!! */
-
-heap_size = 0x20000;
-
-SECTIONS
-{
- .text 0x0 :
- {
- _text_start = ABSOLUTE(.) ;
- *(.text)
- _etext = ALIGN( 0x10 ) ;
- }
- .data ADDR( .text ) + SIZEOF( .text ):
- {
- _data_start = . ;
- *(.data)
- _edata = ALIGN( 0x10 ) ;
- }
- .bss ADDR( .data ) + SIZEOF( .data ):
- {
- _bss_start = . ;
- *(.bss)
- *(COMMON)
- heap_memory = .;
- . += 0x20000;
- _end = . ;
- __end = . ;
- }
-}
diff --git a/sysdeps/standalone/i386/i386.h b/sysdeps/standalone/i386/i386.h
deleted file mode 100644
index 364e8ab..0000000
--- a/sysdeps/standalone/i386/i386.h
+++ /dev/null
@@ -1,326 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* i386.h
- *
- * This file contains macros which are used to access i80386
- * registers which are not addressable by C. This file contains
- * functions which are useful to those developing target
- * specific support routines.
- */
-
-#ifndef i386_h__
-#define i386_h__
-
-typedef unsigned char unsigned8;
-typedef unsigned short unsigned16;
-typedef unsigned int unsigned32;
-
-#define disable_intr( isrlevel ) \
- { (isrlevel) = 0; \
- asm volatile ( "pushf ; \
- pop %0 ; \
- cli " \
- : "=r" ((isrlevel)) : "0" ((isrlevel)) ); \
- }
-
-
-#define enable_intr( isrlevel ) \
- { asm volatile ( "push %0 ; \
- popf " \
- : "=r" ((isrlevel)) : "0" ((isrlevel)) ); \
- }
-
-#define delay( _microseconds ) \
- { \
- unsigned32 _counter; \
- \
- _counter = (_microseconds); \
- \
- asm volatile ( "0: nop;" \
- " mov %0,%0 ;" \
- " loop 0" : "=c" (_counter) \
- : "0" (_counter) \
- ); \
- \
- }
-
-/* segment access functions */
-
-static inline unsigned16 get_cs()
-{
- register unsigned16 segment = 0;
-
- asm volatile ( "movw %%cs,%0" : "=r" (segment) : "0" (segment) );
-
- return segment;
-}
-
-static inline unsigned16 get_ds()
-{
- register unsigned16 segment = 0;
-
- asm volatile ( "movw %%ds,%0" : "=r" (segment) : "0" (segment) );
-
- return segment;
-}
-
-static inline unsigned16 get_es()
-{
- register unsigned16 segment = 0;
-
- asm volatile ( "movw %%es,%0" : "=r" (segment) : "0" (segment) );
-
- return segment;
-}
-
-static inline unsigned16 get_ss()
-{
- register unsigned16 segment = 0;
-
- asm volatile ( "movw %%ss,%0" : "=r" (segment) : "0" (segment) );
-
- return segment;
-}
-
-static inline unsigned16 get_fs()
-{
- register unsigned16 segment = 0;
-
- asm volatile ( "movw %%fs,%0" : "=r" (segment) : "0" (segment) );
-
- return segment;
-}
-
-static inline unsigned16 get_gs()
-{
- register unsigned16 segment = 0;
-
- asm volatile ( "movw %%gs,%0" : "=r" (segment) : "0" (segment) );
-
- return segment;
-}
-
-/* i80x86 I/O instructions */
-
-#define outport_byte( _port, _value ) \
- { register unsigned16 __port = _port; \
- register unsigned8 __value = _value; \
- \
- asm volatile ( "outb %0,%1" : "=a" (__value), "=d" (__port) \
- : "0" (__value), "1" (__port) \
- ); \
- }
-
-#define outport_word( _port, _value ) \
- { register unsigned16 __port = _port; \
- register unsigned16 __value = _value; \
- \
- asm volatile ( "outw %0,%1" : "=a" (__value), "=d" (__port) \
- : "0" (__value), "1" (__port) \
- ); \
- }
-
-#define outport_long( _port, _value ) \
- { register unsigned16 __port = _port; \
- register unsigned32 __value = _value; \
- \
- asm volatile ( "outl %0,%1" : "=a" (__value), "=d" (__port) \
- : "0" (__value), "1" (__port) \
- ); \
- }
-
-#define inport_byte( _port, _value ) \
- { register unsigned16 __port = _port; \
- register unsigned8 __value = 0; \
- \
- asm volatile ( "inb %1,%0" : "=a" (__value), "=d" (__port) \
- : "0" (__value), "1" (__port) \
- ); \
- _value = __value; \
- }
-
-#define inport_word( _port, _value ) \
- { register unsigned16 __port = _port; \
- register unsigned16 __value = 0; \
- \
- asm volatile ( "inw %1,%0" : "=a" (__value), "=d" (__port) \
- : "0" (__value), "1" (__port) \
- ); \
- _value = __value; \
- }
-
-#define inport_long( _port, _value ) \
- { register unsigned16 __port = _port; \
- register unsigned32 __value = 0; \
- \
- asm volatile ( "inl %1,%0" : "=a" (__value), "=d" (__port) \
- : "0" (__value), "1" (__port) \
- ); \
- _value = __value; \
- }
-
-/* structures */
-
-/* See Chapter 5 - Memory Management in i386 manual */
-
-struct GDT_slot {
- unsigned16 limit_0_15;
- unsigned16 base_0_15;
- unsigned8 base_16_23;
- unsigned8 type_dt_dpl_p;
- unsigned8 limit_16_19_granularity;
- unsigned8 base_24_31;
-};
-
-/* See Chapter 9 - Exceptions and Interrupts in i386 manual
- *
- * NOTE: This is the IDT entry for interrupt gates ONLY.
- */
-
-struct IDT_slot {
- unsigned16 offset_0_15;
- unsigned16 segment_selector;
- unsigned8 reserved;
- unsigned8 p_dpl;
- unsigned16 offset_16_31;
-};
-
-struct DTR_load_save_format {
- unsigned16 limit;
- unsigned32 physical_address;
-};
-
-/* variables */
-
-extern struct IDT_slot Interrupt_descriptor_table[ 256 ];
-extern struct GDT_slot Global_descriptor_table[ 8192 ];
-
-/* functions */
-
-#ifdef CPU_INITIALIZE
-#define EXTERN
-#else
-#undef EXTERN
-#define EXTERN extern
-#endif
-
-void *Logical_to_physical(
- unsigned16 segment,
- void *address
-);
-
-void *Physical_to_logical(
- unsigned16 segment,
- void *address
-);
-
-/* complicated static inline functions */
-
-#define get_GDTR( _gdtr_address ) \
- { \
- void *_gdtr = (_gdtr_address); \
- \
- asm volatile( "sgdt (%0)" : "=r" (_gdtr) : "0" (_gdtr) ); \
- }
-
-#define get_GDT_slot( _gdtr_base, _segment, _slot_address ) \
- { \
- register unsigned32 _gdt_slot = (_gdtr_base) + (_segment); \
- register volatile void *_slot = (_slot_address); \
- register unsigned32 _temporary = 0; \
- \
- asm volatile( "movl %%gs:(%0),%1 ; \
- movl %1,(%2) ; \
- movl %%gs:4(%0),%1 ; \
- movl %1,4(%2)" \
- : "=r" (_gdt_slot), "=r" (_temporary), "=r" (_slot) \
- : "0" (_gdt_slot), "1" (_temporary), "2" (_slot) \
- ); \
- }
-
-#define set_GDT_slot( _gdtr_base, _segment, _slot_address ) \
- { \
- register unsigned32 _gdt_slot = (_gdtr_base) + (_segment); \
- register volatile void *_slot = (_slot_address); \
- register unsigned32 _temporary = 0; \
- \
- asm volatile( "movl (%2),%1 ; \
- movl %1,%%gs:(%0) ; \
- movl 4(%2),%1 ; \
- movl %1,%%gs:4(%0) \
- " \
- : "=r" (_gdt_slot), "=r" (_temporary), "=r" (_slot) \
- : "0" (_gdt_slot), "1" (_temporary), "2" (_slot) \
- ); \
- }
-
-static inline void set_segment(
- unsigned16 segment,
- unsigned32 base,
- unsigned32 limit
-)
-{
- struct DTR_load_save_format gdtr;
- volatile struct GDT_slot Gdt_slot;
- volatile struct GDT_slot *gdt_slot = &Gdt_slot;
- unsigned16 tmp_segment = 0;
- unsigned32 limit_adjusted;
-
-
- /* load physical address of the GDT */
-
- get_GDTR( &gdtr );
-
- gdt_slot->type_dt_dpl_p = 0x92; /* present, dpl=0, */
- /* application=1, */
- /* type=data read/write */
- gdt_slot->limit_16_19_granularity = 0x40; /* 32 bit segment */
-
- limit_adjusted = limit;
- if ( limit > 4095 ) {
- gdt_slot->limit_16_19_granularity |= 0x80; /* set granularity bit */
- limit_adjusted /= 4096;
- }
-
- gdt_slot->limit_16_19_granularity |= (limit_adjusted >> 16) & 0xff;
- gdt_slot->limit_0_15 = limit_adjusted & 0xffff;
-
- gdt_slot->base_0_15 = base & 0xffff;
- gdt_slot->base_16_23 = (base >> 16) & 0xff;
- gdt_slot->base_24_31 = (base >> 24);
-
- set_GDT_slot( gdtr.physical_address, segment, gdt_slot );
-
- /* Now, reload all segment registers so the limit takes effect. */
-
- asm volatile( "movw %%ds,%0 ; movw %0,%%ds\n"
- "movw %%es,%0 ; movw %0,%%es\n"
- "movw %%fs,%0 ; movw %0,%%fs\n"
- "movw %%gs,%0 ; movw %0,%%gs\n"
- "movw %%ss,%0 ; movw %0,%%ss"
- : "=r" (tmp_segment)
- : "0" (tmp_segment)
- );
-
-}
-
-#endif
-/* end of include file */
diff --git a/sysdeps/standalone/i386/start.S b/sysdeps/standalone/i386/start.S
deleted file mode 100644
index b3fd315..0000000
--- a/sysdeps/standalone/i386/start.S
+++ /dev/null
@@ -1,338 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* entry.s
- *
- * This file contains the entry point for the application.
- * The name of this entry point is compiler dependent.
- * It jumps to the BSP which is responsible for performing
- * all initialization.
- *
- */
-
- .data
- .global _Do_Load_IDT
- .global _Do_Load_GDT
-
- .text
- .global start # GNU default entry point
- .global _establish_stack
-
- .global _bsp_start
- .global _load_segments
- .global __exit
-
-start:
- nop
- cli # DISABLE INTERRUPTS!!!
-#
-# Load the segment registers
-#
-# NOTE: Upon return, gs will contain the segment descriptor for
-# a segment which maps directly to all of physical memory.
-#
- jmp _load_segments # load board dependent segments
-
-#
-# Set up the stack
-#
-
-_establish_stack:
-
- movl $stack_end,%esp # set stack pointer
- movl $stack_end,%ebp # set base pointer
-
-#
-# Zero out the BSS segment
-#
-zero_bss:
- cld # make direction flag count up
- movl $_end,%ecx # find end of .bss
- movl $_bss_start,%edi # edi = beginning of .bss
- subl %edi,%ecx # ecx = size of .bss in bytes
- shrl $2,%ecx # size of .bss in longs
- xorl %eax,%eax # value to clear out memory
- repne # while ecx != 0
- stosl # clear a long in the bss
-
-#
-# Set the C heap information for malloc
-#
- movl $heap_size,___C_heap_size # set ___C_heap_size
- movl $heap_memory,___C_heap_start # set ___C_heap_start
-
-#
-# Copy the Global Descriptor Table to our space
-#
-
- sgdt _Original_GDTR # save original GDT
- movzwl _Original_GDTR_limit,%ecx # size of GDT in bytes; limit
- # is 8192 entries * 8 bytes per
-
- # make ds:esi point to the original GDT
-
- movl _Original_GDTR_base,%esi
- push %ds # save ds
- movw %gs,%ax
- movw %ax,%ds
-
- # make es:edi point to the new (our copy) GDT
- movl $_Global_descriptor_table,%edi
-
- rep
- movsb # copy the GDT (ds:esi -> es:edi)
-
- pop %ds # restore ds
-
- # Build and load new contents of GDTR
- movw _Original_GDTR_limit,%ecx # set new limit
- movw %cx,_New_GDTR_limit
-
- push $_Global_descriptor_table
- push %es
- call _Logical_to_physical
- addl $6,%esp
- movl %eax,_New_GDTR_base # set new base
-
- cmpb $0,_Do_Load_GDT # Should the new GDT be loaded?
- je no_gdt_load # NO, then branch
- lgdt _New_GDTR # load the new GDT
-no_gdt_load:
-
-#
-# Copy the Interrupt Descriptor Table to our space
-#
-
- sidt _Original_IDTR # save original IDT
- movzwl _Original_IDTR_limit,%ecx # size of IDT in bytes; limit
- # is 256 entries * 8 bytes per
-
-
- # make ds:esi point to the original IDT
- movl _Original_IDTR_base,%esi
-
- push %ds # save ds
- movw %gs,%ax
- movw %ax,%ds
-
- # make es:edi point to the new (our copy) IDT
- movl $_Interrupt_descriptor_table,%edi
-
- rep
- movsb # copy the IDT (ds:esi -> es:edi)
- pop %ds # restore ds
-
- # Build and load new contents of IDTR
- movw _Original_IDTR_limit,%ecx # set new limit
- movw %cx,_New_IDTR_limit
-
- push $_Interrupt_descriptor_table
- push %es
- call _Logical_to_physical
- addl $6,%esp
- movl %eax,_New_IDTR_base # set new base
-
- cmpb $0,_Do_Load_IDT # Should the new IDT be loaded?
- je no_idt_load # NO, then branch
- lidt _New_IDTR # load the new IDT
-no_idt_load:
-
-#
-# Initialize the i387.
-#
-# Using the NO WAIT form of the instruction insures that if
-# it is not present the board will not lock up or get an
-# exception.
-#
-
- fninit # MUST USE NO-WAIT FORM
-
- call __Board_Initialize # initialize the board
-
- pushl $0 # envp = NULL
- pushl $0 # argv = NULL
- pushl $0 # argc = NULL
- call ___libc_init # initialize the library and
- # call main
- addl $12,%esp
-
- pushl $0 # argc = NULL
- call __exit # call the Board specific exit
- addl $4,%esp
-
-#
-# Clean up
-#
-
-
- .global _Bsp_cleanup
-
- .global _return_to_monitor
-
-_Bsp_cleanup:
- cmpb $0,_Do_Load_IDT # Was the new IDT loaded?
- je no_idt_restore # NO, then branch
- lidt _Original_IDTR # restore the new IDT
-no_idt_restore:
-
- cmpb $0,_Do_Load_GDT # Was the new GDT loaded?
- je no_gdt_restore # NO, then branch
- lgdt _Original_GDTR # restore the new GDT
-no_gdt_restore:
- jmp _return_to_monitor
-
-#
-# void *Logical_to_physical(
-# rtems_unsigned16 segment,
-# void *address
-# );
-#
-# Returns thirty-two bit physical address for segment:address.
-#
-
- .global _Logical_to_physical
-
-.set SEGMENT_ARG, 4
-.set ADDRESS_ARG, 8
-
-_Logical_to_physical:
-
- xorl %eax,%eax # clear eax
- movzwl SEGMENT_ARG(%esp),%ecx # ecx = segment value
- movl $_Global_descriptor_table,%edx # edx = address of our GDT
- addl %ecx,%edx # edx = address of desired entry
- movb 7(%edx),%ah # ah = base 31:24
- movb 4(%edx),%al # al = base 23:16
- shll $16,%eax # move ax into correct bits
- movw 2(%edx),%ax # ax = base 0:15
- movl ADDRESS_ARG(%esp),%ecx # ecx = address to convert
- addl %eax,%ecx # ecx = physical address equivalent
- movl %ecx,%eax # eax = ecx
- ret
-
-#
-# void *Physical_to_logical(
-# rtems_unsigned16 segment,
-# void *address
-# );
-#
-# Returns thirty-two bit physical address for segment:address.
-#
-
- .global _Physical_to_logical
-
-#.set SEGMENT_ARG, 4
-#.set ADDRESS_ARG, 8 -- use sets from above
-
-_Physical_to_logical:
-
- xorl %eax,%eax # clear eax
- movzwl SEGMENT_ARG(%esp),%ecx # ecx = segment value
- movl $_Global_descriptor_table,%edx # edx = address of our GDT
- addl %ecx,%edx # edx = address of desired entry
- movb 7(%edx),%ah # ah = base 31:24
- movb 4(%edx),%al # al = base 23:16
- shll $16,%eax # move ax into correct bits
- movw 2(%edx),%ax # ax = base 0:15
- movl ADDRESS_ARG(%esp),%ecx # ecx = address to convert
- subl %eax,%ecx # ecx = logical address equivalent
- movl %ecx,%eax # eax = ecx
- ret
-
-
-/*
- * Data Declarations. Start with a macro which helps declare space.
- */
-
- .bss
-
-#define DECLARE_SPACE(_name,_space,_align) \
- .globl _name ; \
- .align _align ; \
-_name##: .space _space
-
-#define DECLARE_LABEL(_name) \
- .globl _name ; \
-_name##:
-
-#define DECLARE_PTR(_name) DECLARE_SPACE(_name,4,2)
-#define DECLARE_U32(_name) DECLARE_SPACE(_name,4,2)
-#define DECLARE_U16(_name) DECLARE_SPACE(_name,2,1)
-
-/*
- * Require environment stuff
- */
-
-DECLARE_LABEL(_environ)
-DECLARE_PTR(environ)
-
-DECLARE_LABEL(_errno)
-DECLARE_U32(errno)
-
-/*
- * Miscellaneous Variables used to restore the CPU state.
- *
- * Start with a macro to declare the space for the contents of
- * a Descriptor Table register.
- */
-
-#define DECLARE_DTR_SPACE(_name) \
- .global _name ; \
- .align 4 ; \
-_name##: ; \
-_name##_limit: .space 2 ; \
-_name##_base: .space 4
-
-DECLARE_SPACE(_Interrupt_descriptor_table,256*8,4)
-DECLARE_SPACE(_Global_descriptor_table,8192*8,4)
-
-DECLARE_DTR_SPACE(_Original_IDTR)
-DECLARE_DTR_SPACE(_New_IDTR)
-DECLARE_DTR_SPACE(_Original_GDTR)
-DECLARE_DTR_SPACE(_New_GDTR)
-
-DECLARE_SPACE(_Physical_base_of_ds,4,4)
-DECLARE_SPACE(_Physical_base_of_cs,4,4)
-
-/*
- * Stack Size and Space
- */
-
- .set stack_size, 0x20000
-
-DECLARE_SPACE(stack_memory,stack_size,4)
-DECLARE_LABEL(stack_end)
diff --git a/sysdeps/standalone/i960/Dist b/sysdeps/standalone/i960/Dist
deleted file mode 100644
index e1747ef..0000000
--- a/sysdeps/standalone/i960/Dist
+++ /dev/null
@@ -1 +0,0 @@
-i960ca.h
diff --git a/sysdeps/standalone/i960/i960ca.h b/sysdeps/standalone/i960/i960ca.h
deleted file mode 100644
index 0dcf5c3..0000000
--- a/sysdeps/standalone/i960/i960ca.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/* Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* i960ca.h
- *
- * This file contains macros which are used to access i80960CA
- * registers which are not addressable by C. The functions
- * in this file should be useful to the developer of target
- * specific code.
- */
-
-#ifndef i960ca_h__
-#define i960ca_h__
-
-typedef unsigned char unsigned8;
-typedef unsigned short unsigned16;
-typedef unsigned int unsigned32;
-
-/*
- * Intel i80960CA Processor Control Block
- */
-
-struct i80960ca_prcb {
- unsigned32 *fault_tbl; /* fault table base address */
- struct i80960ca_ctltbl
- *control_tbl; /* control table base address */
- unsigned32 initial_ac; /* AC register initial value */
- unsigned32 fault_config; /* fault configuration word */
- void *intr_tbl; /* interrupt table base address */
- void *sys_proc_tbl; /* system procedure table */
- /* base address */
- unsigned32 reserved; /* reserved */
- unsigned32 *intr_stack; /* interrupt stack pointer */
- unsigned32 ins_cache_cfg; /* instruction cache */
- /* configuration word */
- unsigned32 reg_cache_cfg; /* register cache */
- /* configuration word */
-};
-
-/*
- * Intel i80960CA Control Table
- */
-
-struct i80960ca_ctltbl {
- /* Control Group 0 */
- unsigned32 ipb0; /* IP breakpoint 0 */
- unsigned32 ipb1; /* IP breakpoint 1 */
- unsigned32 dab0; /* data address breakpoint 0 */
- unsigned32 dab1; /* data address breakpoint 1 */
- /* Control Group 1 */
- unsigned32 imap0; /* interrupt map 0 */
- unsigned32 imap1; /* interrupt map 1 */
- unsigned32 imap2; /* interrupt map 2 */
- unsigned32 icon; /* interrupt control */
- /* Control Group 2 */
- unsigned32 mcon0; /* memory region 0 configuration */
- unsigned32 mcon1; /* memory region 1 configuration */
- unsigned32 mcon2; /* memory region 2 configuration */
- unsigned32 mcon3; /* memory region 3 configuration */
- /* Control Group 3 */
- unsigned32 mcon4; /* memory region 4 configuration */
- unsigned32 mcon5; /* memory region 5 configuration */
- unsigned32 mcon6; /* memory region 6 configuration */
- unsigned32 mcon7; /* memory region 7 configuration */
- /* Control Group 4 */
- unsigned32 mcon8; /* memory region 8 configuration */
- unsigned32 mcon9; /* memory region 9 configuration */
- unsigned32 mcon10; /* memory region 10 configuration */
- unsigned32 mcon11; /* memory region 11 configuration */
- /* Control Group 5 */
- unsigned32 mcon12; /* memory region 12 configuration */
- unsigned32 mcon13; /* memory region 13 configuration */
- unsigned32 mcon14; /* memory region 14 configuration */
- unsigned32 mcon15; /* memory region 15 configuration */
- /* Control Group 6 */
- unsigned32 bpcon; /* breakpoint control */
- unsigned32 tc; /* trace control */
- unsigned32 bcon; /* bus configuration control */
- unsigned32 reserved; /* reserved */
-};
-
-#define disable_intr( oldlevel ) \
- { (oldlevel) = 0x1f0000; \
- asm volatile ( "modpc 0,%1,%1" \
- : "=d" ((oldlevel)) \
- : "0" ((oldlevel)) ); \
- }
-
-#define enable_intr( oldlevel ) \
- { unsigned32 _mask = 0x1f0000; \
- asm volatile ( "modpc 0,%0,%1" \
- : "=d" (_mask), "=d" ((oldlevel)) \
- : "0" (_mask), "1" ((oldlevel)) ); \
- }
-
-#define flash_intr( oldlevel ) \
- { unsigned32 _mask = 0x1f0000; \
- asm volatile ( "modpc 0,%0,%1 ; \
- mov %0,%1 ; \
- modpc 0,%0,%1" \
- : "=d" (_mask), "=d" ((oldlevel)) \
- : "0" (_mask), "1" ((oldlevel)) ); \
- }
-
-#define atomic_modify( mask, addr, prev ) \
- { register unsigned32 _mask = (mask); \
- register unsigned32 *_addr = (unsigned32 *)(addr); \
- asm volatile( "atmod %0,%1,%1" \
- : "=d" (_addr), "=d" (_mask) \
- : "0" (_addr), "1" (_mask) ); \
- (prev) = _mask; \
- }
-
-#define delay( microseconds ) \
- { register unsigned32 _delay=(microseconds); \
- register unsigned32 _tmp; \
- asm volatile( "delay0: \
- remo 3,31,%0 ; \
- cmpo 0,%0 ; \
- subo 1,%1,%1 ; \
- cmpobne.t 0,%1,delay0 " \
- : "=d" (_tmp), "=d" (_delay) \
- : "0" (_tmp), "1" (_delay) ); \
- }
-
-#define enable_tracing() \
- { register unsigned32 _pc = 0x1; \
- asm volatile( "modpc 0,%0,%0" : "=d" (_pc) : "0" (_pc) ); \
- }
-
-#define unmask_intr( xint ) \
- { register unsigned32 _mask= (1<<(xint)); \
- asm volatile( "or sf1,%0,sf1" : "=d" (_mask) : "0" (_mask) ); \
- }
-
-#define mask_intr( xint ) \
- { register unsigned32 _mask= (1<<(xint)); \
- asm volatile( "andnot %0,sf1,sf1" : "=d" (_mask) : "0" (_mask) ); \
- }
-
-#define clear_intr( xint ) \
- { register unsigned32 _xint=(xint); \
- asm volatile( "loop_til_cleared:" \
- " clrbit %0,sf0,sf0 ;" \
- " bbs %0,sf0,loop_til_cleared" \
- : "=d" (_xint) : "0" (_xint) ); \
- }
-
-#define reload_ctl_group( group ) \
- { register int _cmd = ((group)|0x400) ; \
- asm volatile( "sysctl %0,%0,%0" : "=d" (_cmd) : "0" (_cmd) ); \
- }
-
-#define cause_intr( intr ) \
- { register int _intr = (intr); \
- asm volatile( "sysctl %0,%0,%0" : "=d" (_intr) : "0" (_intr) ); \
- }
-
-#define soft_reset( prcb ) \
- { register struct i80960ca_prcb *_prcb = (prcb); \
- register unsigned32 *_next=0; \
- register unsigned32 _cmd = 0x30000; \
- asm volatile( "lda next,%1; \
- sysctl %0,%1,%2; \
- next: mov g0,g0" \
- : "=d" (_cmd), "=d" (_next), "=d" (_prcb) \
- : "0" (_cmd), "1" (_next), "2" (_prcb) ); \
- }
-
-static inline unsigned32 pend_intrs()
-{ register unsigned32 _intr=0;
- asm volatile( "mov sf0,%0" : "=d" (_intr) : "0" (_intr) );
- return ( _intr );
-}
-
-static inline unsigned32 mask_intrs()
-{ register unsigned32 _intr=0;
- asm volatile( "mov sf1,%0" : "=d" (_intr) : "0" (_intr) );
- return( _intr );
-}
-
-static inline unsigned32 get_fp()
-{ register unsigned32 _fp=0;
- asm volatile( "mov fp,%0" : "=d" (_fp) : "0" (_fp) );
- return ( _fp );
-}
-
-#endif
-/* end of include file */
diff --git a/sysdeps/standalone/i960/nindy960/Makefile b/sysdeps/standalone/i960/nindy960/Makefile
deleted file mode 100644
index 40ead97..0000000
--- a/sysdeps/standalone/i960/nindy960/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (C) 1993, 1997 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
-# On-Line Applications Research Corporation.
-
-# 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, write to the Free
-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307 USA.
-
-
-# The nindy960 support has only been tested on the following boards:
-#
-# + Cyclone CVME961 VMEbus single board computer.
diff --git a/sysdeps/standalone/i960/nindy960/_exit.c b/sysdeps/standalone/i960/nindy960/_exit.c
deleted file mode 100644
index 9cd3f85..0000000
--- a/sysdeps/standalone/i960/nindy960/_exit.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 1991, 1997, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <unistd.h>
-#include <stdlib.h>
-
-/* The function `_exit' should take a status argument and simply
- terminate program execution, using the low-order 8 bits of the
- given integer as status. */
-
-/* This returns control to Nindy. */
-/* XXX where is __NORETURN ? */
-__NORETURN void
-_exit (status)
- int status;
-{
- /* status is ignored */
-
- asm volatile( "mov 0,g0; \
- fmark ; \
- syncf ; \
- .word 0xfeedface ; \
- bx start" : : );
- /* The constant 0xfeedface is a magic word for break which
- * is defined by NINDY. The branch extended restarts the
- * application if the user types "go".
- */
-}
-weak_alias (_exit, _Exit)
-
-
-#ifdef HAVE_GNU_LD
-
-#include <gnu-stabs.h>
-
-stub_warning(_exit);
-
-#endif /* GNU stabs. */
diff --git a/sysdeps/standalone/i960/nindy960/brdinit.c b/sysdeps/standalone/i960/nindy960/brdinit.c
deleted file mode 100644
index 9985a99..0000000
--- a/sysdeps/standalone/i960/nindy960/brdinit.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <standalone.h>
-#include "i960ca.h"
-
-/* _Board_Initialize()
-
-This routine initializes the board.
-
-NOTE: Only tested on a Cyclone CVME961 but should be OK on any i960ca board. */
-
-void
-_Board_Initialize ()
-{
- struct i80960ca_prcb *prcb; /* ptr to processor control block */
- struct i80960ca_ctltbl *ctl_tbl; /* ptr to control table */
-
- static inline struct i80960ca_prcb *get_prcb()
- { register struct i80960ca_prcb *_prcb = 0;
- asm volatile( "calls 5; \
- mov g0,%0" \
- : "=d" (_prcb) \
- : "0" (_prcb) );
- return ( _prcb );
- }
-
- prcb = get_prcb ();
- ctl_tbl = prcb->control_tbl;
-
- /* The following configures the data breakpoint (which must be set
- * before this is executed) to break on writes only.
- */
-
- ctl_tbl->bpcon &= ~0x00cc0000;
- reload_ctl_group (6);
-
- /* bit 31 of the Register Cache Control can be set to
- * enable an alternative caching algorithm. It does
- * not appear to help our applications.
- */
-
- /* Configure Number of Register Caches */
-
- prcb->reg_cache_cfg = 8;
- soft_reset (prcb);
-}
diff --git a/sysdeps/standalone/i960/nindy960/console.c b/sysdeps/standalone/i960/nindy960/console.c
deleted file mode 100644
index b062d92..0000000
--- a/sysdeps/standalone/i960/nindy960/console.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <standalone.h>
-#include "i960ca.h"
-
-/* Console IO routines for a NINDY960 board. */
-
-/*
- * NINDY_IO( ... )
- *
- * Interface to NINDY.
- */
-
-#define NINDY_INPUT 0
-#define NINDY_OUTPUT 1
-
-void ___NINDY_IO_WRAPPER( void ) /* never called */
-{
- asm volatile ( " .text" );
- asm volatile ( " .align 4" );
- asm volatile ( " .globl _NINDY_IO" );
- asm volatile ( "_NINDY_IO:" );
- asm volatile ( " calls 0 /* call console routines */" );
- asm volatile ( " ret" );
-}
-
-/***** !!!! HOW DO I EXFUN NINDY_IO? !!!! *****/
-
-/* _Console_Putc
-
-This routine transmits a character using NINDY. */
-
-int
-_Console_Putc (ch)
- char ch;
-{
- NINDY_IO( NINDY_OUTPUT, ch );
- return( 0 );
-}
-
-/* _Console_Getc
-
-This routine reads a character from NINDY and returns it. */
-
-int
-_Console_Getc (poll)
- int poll;
-{
- char ch;
-
- if ( poll ) {
- /* I don't know how to poll with NINDY */
- return -1;
- } else {
- NINDY_IO( NINDY_INPUT, &ch );
- return ch;
- }
-}
diff --git a/sysdeps/standalone/i960/start.S b/sysdeps/standalone/i960/start.S
deleted file mode 100644
index 579beb7..0000000
--- a/sysdeps/standalone/i960/start.S
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* entry.s
- *
- * This file contains the entry point for the application.
- * The name of this entry point is compiler dependent.
- * It jumps to the BSP which is responsible for performing
- * all initialization.
- *
- */
-
- .text
- .globl start # GNU960 default entry point
-
-start:
- mov 3, r12
- modpc r12, r12, r12 # enable tracing/trace faults
- mov g5, g5 # NOP
- mov 0, g14 # initialize constant for C
-
- /*
- * zero out uninitialized data area
- */
-zerobss:
- lda _end, r4 /* find end of .bss */
- lda _bss_start, r5 /* find beginning of .bss */
- ldconst 0, r6
-
-loop: st r6, (r5) /* to zero out uninitialized */
- addo 4, r5, r5 /* data area */
- cmpobl r5, r4, loop /* loop until _end reached */
-
-
- lda heap_memory, r12 /* tell C lib where heap is */
- st r12,___C_heap_start
- lda heap_size, r12 /* tell C lib how big heap is */
- st r12,___C_heap_size
- lda stack_memory,r12 /* set up stack pointer: */
- mov r12, sp
- mov 0, g14 /* initialize constant for C */
-
- call init_frames
- ret /* return to monitor */
-
-init_frames:
- ldconst 0x3b001000, g0
- ldconst 0x00009107, g1
- modac g1, g0, g0 /* set AC controls */
-
- /*
- * Call application mainline.
- * Someday, real values of argc and argv will be set up.
- * For now, they are set to 0.
- */
-
- callx __Board_Initialize /* Initialize the board */
-
- ldconst 0,g0
- ldconst 0,g1
- ldconst 0,g2
- callx ___libc_init /* initialize the library and */
- /* call main */
- /*
- * if we return from main, we have "fallen" off the end
- * of the program, therefore status is 0
- * so move 0 to g0 (exit parameter)
- */
-
- mov 0, g0
- callx __exit
- ret
-
-
-/*
- * Data Declarations. Start with a macro which helps declare space.
- */
-
-#define DECLARE_SPACE(_name,_space,_align) \
- .globl _name ; \
- .align _align ; \
-.comm _name##,_space
-
-#define DECLARE_LABEL(_name) \
- .globl _name ; \
-_name##:
-
-#define DECLARE_PTR(_name) DECLARE_SPACE(_name,4,2)
-#define DECLARE_U32(_name) DECLARE_SPACE(_name,4,2)
-#define DECLARE_U16(_name) DECLARE_SPACE(_name,2,1)
-
-/*
- * Require environment stuff
- */
-
-DECLARE_LABEL(_environ)
-DECLARE_PTR(environ)
-
-DECLARE_LABEL(_errno)
-DECLARE_U32(errno)
-
-/*
- * Stack Size and Space
- */
-
- .set stack_size, 0x20000
-
-DECLARE_SPACE(stack_memory,stack_size,4)
-DECLARE_LABEL(stack_end)
-
-/*
- * Heap Size and Space
- */
-
- .set heap_size, 0x20000
-
-DECLARE_SPACE(heap_memory,heap_size,4)
-DECLARE_LABEL(heap_end)
diff --git a/sysdeps/standalone/m68k/m68020/Dist b/sysdeps/standalone/m68k/m68020/Dist
deleted file mode 100644
index 90b37b4..0000000
--- a/sysdeps/standalone/m68k/m68020/Dist
+++ /dev/null
@@ -1 +0,0 @@
-m68020.h
diff --git a/sysdeps/standalone/m68k/m68020/m68020.h b/sysdeps/standalone/m68k/m68020/m68020.h
deleted file mode 100644
index 8eee007..0000000
--- a/sysdeps/standalone/m68k/m68020/m68020.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* m68020.h
- *
- * This file contains macros which are used to access MC68020
- * registers which are not addressable by C. These are
- * useful when developing the board specific support.
- */
-
-#ifndef m68020_h__
-#define m68020_h__
-
-typedef void ( *mc68020_isr )( void );
-
-#define disable_intr( level ) \
- { (level) = 0; \
- asm volatile ( "movew %%sr,%0 ; \
- orw #0x0700,%%sr" \
- : "=d" ((level)) : "0" ((level)) ); \
- }
-
-#define enable_intr( level ) \
- { asm volatile ( "movew %0,%%sr " \
- : "=d" ((level)) : "0" ((level)) ); \
- }
-
-#define flash_intr( level ) \
- { asm volatile ( "movew %0,%%sr ; \
- orw #0x0700,%%sr" \
- : "=d" ((level)) : "0" ((level)) ); \
- }
-
-#define get_vbr( vbr ) \
- { (vbr) = 0; \
- asm volatile ( "movec %%vbr,%0 " \
- : "=a" (vbr) : "0" (vbr) ); \
- }
-
-#define set_vbr( vbr ) \
- { register mc68020_isr *_vbr= (mc68020_isr *)(vbr); \
- asm volatile ( "movec %0,%%vbr " \
- : "=a" (_vbr) : "0" (_vbr) ); \
- }
-
-#define enable_caching() \
- { register unsigned int _ctl=0x01; \
- asm volatile ( "movec %0,%%cacr" \
- : "=d" (_ctl) : "0" (_ctl) ); \
- }
-
-#define delay( microseconds ) \
- { register unsigned int _delay=(microseconds); \
- register unsigned int _tmp=123; \
- asm volatile( "0: \
- nbcd %0 ; \
- nbcd %0 ; \
- dbf %1,0 " \
- : "=d" (_tmp), "=d" (_delay) \
- : "0" (_tmp), "1" (_delay) ); \
- }
-
-#define enable_tracing()
-#define cause_intr( X )
-#define clear_intr( X )
-
-extern mc68020_isr M68Kvec[]; /* vector table address */
-
-#endif
-/* end of include file */
diff --git a/sysdeps/standalone/m68k/m68020/mvme135/Implies b/sysdeps/standalone/m68k/m68020/mvme135/Implies
deleted file mode 100644
index 7142fe2..0000000
--- a/sysdeps/standalone/m68k/m68020/mvme135/Implies
+++ /dev/null
@@ -1,2 +0,0 @@
-# Motorola MVME135 and MVME136 are compatible.
-standalone/m68k/m68020/mvme136
diff --git a/sysdeps/standalone/m68k/m68020/mvme136/Dist b/sysdeps/standalone/m68k/m68020/mvme136/Dist
deleted file mode 100644
index 97b9058..0000000
--- a/sysdeps/standalone/m68k/m68020/mvme136/Dist
+++ /dev/null
@@ -1 +0,0 @@
-mvme136.ld
diff --git a/sysdeps/standalone/m68k/m68020/mvme136/Makefile b/sysdeps/standalone/m68k/m68020/mvme136/Makefile
deleted file mode 100644
index 122c1b1..0000000
--- a/sysdeps/standalone/m68k/m68020/mvme136/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright (C) 1993, 1997 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
-# On-Line Applications Research Corporation.
-
-# 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, write to the Free
-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307 USA.
-
-ifeq (bare,$(subdir))
-install-lib += mvme136.ld
-endif
diff --git a/sysdeps/standalone/m68k/m68020/mvme136/_exit.c b/sysdeps/standalone/m68k/m68020/mvme136/_exit.c
deleted file mode 100644
index e5e078c..0000000
--- a/sysdeps/standalone/m68k/m68020/mvme136/_exit.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 1994, 1997, 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <unistd.h>
-#include <stdlib.h>
-#include "m68020.h"
-
-/* Return control to 135Bug */
-
-void
-__exit_trap ()
-{
- set_vbr( 0 ); /* restore 135Bug vectors */
- asm volatile( "trap #15" ); /* trap to 135Bug */
- asm volatile( ".short 0x63" ); /* return to 135Bug (.RETURN) */
- asm volatile( "jmp main" ); /* restart program */
-}
-
-/* The function `_exit' should take a status argument and simply
- terminate program execution, using the low-order 8 bits of the
- given integer as status. */
-
-void
-__attribute__ ((noreturn))
-_exit (status)
- int status;
-{
- /* status is ignored */
-
- M68Kvec[ 45 ] = __exit_trap; /* install exit_trap handler */
- asm volatile( "trap #13" ); /* insures SUPV mode */
-}
-weak_alias (_exit, _Exit)
diff --git a/sysdeps/standalone/m68k/m68020/mvme136/brdinit.c b/sysdeps/standalone/m68k/m68020/mvme136/brdinit.c
deleted file mode 100644
index 95b81c1..0000000
--- a/sysdeps/standalone/m68k/m68020/mvme136/brdinit.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <standalone.h>
-#include "m68020.h"
-
-/* _Board_Initialize()
-
-This routine initializes the Motorola MVME135/MVME136. */
-
-void
-_Board_Initialize ()
-{
- mc68020_isr *monitors_vector_table;
- int index;
-
- monitors_vector_table = (mc68020_isr *)0; /* 135Bug Vectors are at 0 */
- set_vbr( monitors_vector_table );
-
- for ( index=2 ; index<=255 ; index++ )
- M68Kvec[ index ] = monitors_vector_table[ 32 ];
-
- M68Kvec[ 2 ] = monitors_vector_table[ 2 ]; /* bus error vector */
- M68Kvec[ 4 ] = monitors_vector_table[ 4 ]; /* breakpoints vector */
- M68Kvec[ 9 ] = monitors_vector_table[ 9 ]; /* trace vector */
- M68Kvec[ 47 ] = monitors_vector_table[ 47 ]; /* system call vector */
-
- set_vbr( &M68Kvec );
-
- (*(unsigned char *)0xfffb0067) = 0x7f; /* make VME access round-robin */
-
- enable_caching ();
-
-}
diff --git a/sysdeps/standalone/m68k/m68020/mvme136/console.c b/sysdeps/standalone/m68k/m68020/mvme136/console.c
deleted file mode 100644
index 85dee98..0000000
--- a/sysdeps/standalone/m68k/m68020/mvme136/console.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright (C) 1994, 1996 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
-
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <standalone.h>
-#include "m68020.h"
-
-/* Console IO routines for a Motorola MVME135/MVME136 board.
-
-They currently use the B port. It should be possible to
-use the A port by filling in the reset of the chip structure,
-adding an ifdef for PORTA/PORTB, and switching the addresses,
-and maybe the macros based on the macro. */
-
-/* M68681 DUART chip register structures and constants */
-
-typedef struct {
- volatile unsigned char fill1[ 5 ]; /* channel A regs ( not used ) */
- volatile unsigned char isr; /* interrupt status reg */
- volatile unsigned char fill2[ 2 ]; /* counter regs (not used) */
- volatile unsigned char mr1mr2b; /* MR1B and MR2B regs */
- volatile unsigned char srb; /* status reg channel B */
- volatile unsigned char fill3; /* do not access */
- volatile unsigned char rbb; /* receive buffer channel B */
- volatile unsigned char ivr; /* interrupt vector register */
-} r_m681_info;
-
-typedef struct {
- volatile unsigned char fill1[ 4 ]; /* channel A regs (not used) */
- volatile unsigned char acr; /* auxillary control reg */
- volatile unsigned char imr; /* interrupt mask reg */
- volatile unsigned char fill2[ 2 ]; /* counter regs (not used) */
- volatile unsigned char mr1mr2b; /* MR1B and MR2B regs */
- volatile unsigned char csrb; /* clock select reg */
- volatile unsigned char crb; /* command reg */
- volatile unsigned char tbb; /* transmit buffer channel B */
- volatile unsigned char ivr; /* interrupt vector register */
-} w_m681_info;
-
-#define RD_M68681 ((r_m681_info *)0xfffb0040) /* ptr to the M68681 */
-#define WR_M68681 ((w_m681_info *)0xfffb0040) /* ptr to the M68681 */
-#define RXRDYB 0x01 /* status reg recv ready mask */
-#define TXRDYB 0x04 /* status reg trans ready mask */
-
-/* _Console_Putc
-
-This routine transmits a character out the M68681. It supports
-XON/XOFF flow control. */
-
-#define XON 0x11 /* control-Q */
-#define XOFF 0x13 /* control-S */
-
-int
-_Console_Putc (ch)
- char ch;
-{
- while ( ! (RD_M68681->srb & TXRDYB) ) ;
- while ( RD_M68681->srb & RXRDYB ) /* must be an XOFF */
- if ( RD_M68681->rbb == XOFF )
- do {
- while ( ! (RD_M68681->srb & RXRDYB) ) ;
- } while ( RD_M68681->rbb != XON );
-
- WR_M68681->tbb = ch;
- return( 0 );
-}
-
-/* _Console_Getc
-
-This routine reads a character from the UART and returns it. */
-
-int
-_Console_Getc (poll)
- int poll;
-{
- if ( poll ) {
- if ( !(RD_M68681->srb & RXRDYB) )
- return -1;
- else
- return RD_M68681->rbb;
- } else {
- while ( !(RD_M68681->srb & RXRDYB) );
- return RD_M68681->rbb;
- }
-}
diff --git a/sysdeps/standalone/m68k/m68020/mvme136/mvme136.ld b/sysdeps/standalone/m68k/m68020/mvme136/mvme136.ld
deleted file mode 100644
index 9a352f0..0000000
--- a/sysdeps/standalone/m68k/m68020/mvme136/mvme136.ld
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* This file contains directives for the GNU linker which are specific
-to the Motorola MVME136/MVME135 boards. */
-
-MEMORY
- {
- ram : org = 0x3000, l = 1M
- }
-
-/* This value is also when the space is allocated. If you change
-this one, change the other one!!! */
-
-heap_size = 0x20000;
-
-SECTIONS
-{
- .text 0x3000 :
- {
- text_start = ABSOLUTE(.) ;
- *(.text)
- etext = ALIGN( 0x10 ) ;
- }
-
- .data ADDR( .text ) + SIZEOF( .text ):
- {
- data_start = . ;
- *(.data)
- edata = ALIGN( 0x10 ) ;
- }
-
- .bss ADDR( .data ) + SIZEOF( .data ):
- {
- bss_start = . ;
- _bss_start = . ;
- *(.bss)
- *(COMMON)
- heap_memory = .;
- . += 0x20000;
- end = . ;
- _end = . ;
- }
-}
diff --git a/sysdeps/standalone/m68k/m68020/start.S b/sysdeps/standalone/m68k/m68020/start.S
deleted file mode 100644
index 166605f..0000000
--- a/sysdeps/standalone/m68k/m68020/start.S
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* entry.s
- *
- * This file contains the entry point for the application.
- * The name of this entry point is compiler dependent.
- * It jumps to the BSP which is responsible for performing
- * all initialization.
- */
-
- .text
- .globl start | Default entry point
- .globl _start | Default entry point
- .globl M68Kvec | Vector Table
- .globl _M68Kvec | Vector Table
-
-start:
-_start:
-M68Kvec: | standard location for vectors
-_M68Kvec: | standard location for vectors
- nop | for linkers with problem
- | using location zero as entry
- jmp around
- .space 4088 | to avoid initial intr stack
- | from 135BUG on MVME13? as entry
- | and start code at 0x4000
-around:
- move.w %sr,initial_sr | save initial values
- movec %isp,%a0
- movel %a0,initial_isp
- movec %usp,%a0
- movel %a0,initial_usp
- movec %msp,%a0
- movel %a0,initial_msp
- oriw #0x0700,%sr | INTERRUPTS OFF!!!
-
-
-
- |
- | zero out uninitialized data area
- |
-zerobss:
- moveal #end,%a0 | find end of .bss
- moveal #_bss_start,%a1 | find beginning of .bss
- movel #0,%d0
-
-loop: movel #0,%a1@+ | to zero out uninitialized
- cmpal %a0,%a1
- jlt loop | loop until _end reached
-
- movel #heap_size,__C_heap_size | set ___C_heap_size
- movel #heap_memory,__C_heap_start | set ___C_heap_start
- moveal #interrupt_stack_end,%a0 | set interrupt stack pointer
- movec %a0,%isp
- moveal #stack_end,%a0 | set master stack pointer
- movec %a0,%msp
- moveal #stack_end,%a6 | set base pointer
- movw #0x3000,%sr | SUPV MODE,INTERRUPTS ON!!!
-
-#ifdef NEED_UNDERSCORES
- jsr __Board_Initialize | initialize the board
-#else
- jsr _Board_Initialize | initialize the board
-#endif
-
- move.l #0,%sp@- | envp = NULL
- move.l #0,%sp@- | argv = NULL
- move.l #0,%sp@- | argc = NULL
-#ifdef NEED_UNDERSCORES
- jsr ___libc_init | initialize the library and
- | call main
-#else
- jsr __libc_init | initialize the library and
- | call main
-#endif
- add.l #12,%sp
-
- move.l #0,%sp@- | argc = NULL
- jsr __exit | call the Board specific exit
- addq.l #4,%sp
-
- move.l initial_isp,%a0 | if __exit returns then we can
- movec %a0,%isp | restore the initial values
- move.l initial_usp,%a0
- movec %a0,%usp
- move.l initial_msp,%a0
- movec %a0,%msp
- move.w initial_sr,%sr
- rts
-
-
- .bss
-
-/*
- * So initial stack registers and status register can be saved.
- */
-
-#define DECLARE_SPACE(_name,_space,_align) \
- .globl _name ; \
- .align _align ; \
-_name##: .space _space
-
-#define DECLARE_LABEL(_name) \
- .globl _name ; \
-_name##:
-
-#define DECLARE_PTR(_name) DECLARE_SPACE(_name,4,2)
-#define DECLARE_U32(_name) DECLARE_SPACE(_name,4,2)
-#define DECLARE_U16(_name) DECLARE_SPACE(_name,2,1)
-
-DECLARE_U32(initial_isp)
-DECLARE_U32(initial_msp)
-DECLARE_U32(initial_usp)
-DECLARE_U16(initial_sr)
-
-/*
- * Require environment stuff
- */
-
-DECLARE_LABEL(_environ)
-DECLARE_PTR(environ)
-
-DECLARE_LABEL(__errno)
-DECLARE_LABEL(_errno)
-DECLARE_U32(errno)
-
-/*
- * Stack Size and Space
- */
-
- .set stack_size, 0x20000
-
-DECLARE_SPACE(stack_memory,stack_size,4)
-DECLARE_LABEL(stack_end)
-
-DECLARE_SPACE(interrupt_stack_memory,0x1000,4)
-DECLARE_LABEL(interrupt_stack_end)
diff --git a/sysdeps/standalone/open.c b/sysdeps/standalone/open.c
deleted file mode 100644
index e0a3432..0000000
--- a/sysdeps/standalone/open.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 1994, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
- Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdarg.h>
-#include <stddef.h>
-
-#include <stdio.h>
-#include <bits/stdio_lim.h>
-#include <unistd.h>
-
-#define __DECLARE_FILE_DESCRIPTORS__
-
-#include "filedesc.h"
-
-/* Open FILE with access OFLAG. If OFLAG includes O_CREAT,
- a third argument is the file protection. */
-int
-__open (file, oflag)
- const char *file;
- int oflag;
-{
- int mode;
- int newfd;
- int index;
-
- if (file == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if (oflag & O_CREAT)
- {
- va_list arg;
- va_start(arg, oflag);
- mode = va_arg(arg, int);
- va_end(arg);
- }
-
- /*
- * Find an open slot.
- */
-
- newfd = -1;
-
- for ( index=0 ; index< FOPEN_MAX ; index++ )
- if ( !__FD_Table[ index ].in_use ) {
- newfd = index;
- break;
- }
-
- if ( newfd == -1 ) {
- __set_errno (ENFILE);
- return -1;
- }
-
- /*
- * Initialize the open slot
- */
-
- __FD_Table[ newfd ].in_use = 1;
- __FD_Table[ newfd ].flags = oflag;
-
- return newfd;
-}
-libc_hidden_def (__open)
-
-/* Initialization Code for Console I/O */
-
-#ifdef HAVE_GNU_LD
-static
-#endif
-void
-__NONE_init_console_io (argc, argv, envp)
- int argc;
- char **argv;
- char **envp;
-{
- int index;
-
- for ( index=0 ; index< FOPEN_MAX ; index++ )
- __FD_Table[ index ].in_use = 0;
-
- stdin = fopen( "", "r" );
-
- stdout = fopen( "", "w" );
-
- stderr = fopen( "", "w" );
-
- /*
- * Line buffer the standard input and output and use no buffering for
- * standard error.
- */
-
- setvbuf( stdin, NULL, _IOLBF, BUFSIZ );
- setvbuf( stdout, NULL, _IOLBF, BUFSIZ );
- setvbuf( stderr, NULL, _IONBF, BUFSIZ );
-
- (void) &__NONE_init_console_io; /* Avoid "defined but not used" warning. */
-}
-
-#ifdef HAVE_GNU_LD
-text_set_element (__libc_subinit, __NONE_init_console_io);
-#endif
-
-weak_alias (__open, open)
diff --git a/sysdeps/standalone/read.c b/sysdeps/standalone/read.c
deleted file mode 100644
index 0fb9e7a..0000000
--- a/sysdeps/standalone/read.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 1994, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
- Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <unistd.h>
-#include <stddef.h>
-
-#include "filedesc.h"
-#include <fcntl.h>
-#include <standalone.h>
-
-/* Read NBYTES into BUF from FD. Return the number read or -1. */
-ssize_t
-__libc_read (int fd, void *buf, size_t nbytes)
-{
- char *buffer = (char *) buf;
- int data;
- int poll;
-
- __set_errno (0);
-
- if (nbytes == 0)
- return 0;
-
- if ( !__FD_Is_valid( fd ) || !__FD_Table[ fd ].in_use )
- {
- __set_errno (EBADF);
- return -1;
- }
- if (buf == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if ( __FD_Table[ fd ].flags & O_WRONLY ) /* is it write only? */
- {
- __set_errno (EBADF);
- return -1;
- }
-
- /* If this is a non-blocking fd, then we want to poll the console. */
-
- poll = ( __FD_Table[ fd ].flags & O_NONBLOCK ) ? 1 : 0;
-
- /* Read a single character. This is a cheap way to insure that the
- upper layers get every character because _Console_Getc can't timeout
- or otherwise know when to stop. */
-
-
- data = _Console_Getc(poll);
-
- if ( data == -1 ) /* if no data return */
- return -1;
-
- (void) _Console_Putc(data); /* echo the character */
-
- if ( data == '\r' ) { /* translate CR -> CR/LF */
- (void) _Console_Putc('\n');
- data = '\n';
- }
-
- *buffer = data;
- return 1;
-}
-libc_hidden_def (__libc_read)
-weak_alias (__libc_read, __read)
-libc_hidden_weak (__read)
-weak_alias (__libc_read, read)
diff --git a/sysdeps/standalone/standalone.h b/sysdeps/standalone/standalone.h
deleted file mode 100644
index 20a0c33..0000000
--- a/sysdeps/standalone/standalone.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1994, 1997, 2004 Free Software Foundation, Inc.
- Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _STANDALONE_H
-#define _STANDALONE_H
-
-#include <sys/cdefs.h>
-
-extern void _Board_Initialize (void);
-
-extern int _Console_Putc (char c);
-extern int _Console_Getc (int poll);
-
-#endif
diff --git a/sysdeps/standalone/write.c b/sysdeps/standalone/write.c
deleted file mode 100644
index 5d38230..0000000
--- a/sysdeps/standalone/write.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 1994, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
- Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
- On-Line Applications Research Corporation.
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stddef.h>
-
-#include "filedesc.h"
-#include <fcntl.h>
-#include <standalone.h>
-
-/* Write NBYTES of BUF to FD. Return the number written, or -1. */
-ssize_t
-__libc_write (int fd, const void *buf, size_t nbytes)
-{
- int count;
- const char *data = buf;
-
- if (nbytes == 0)
- return 0;
- if ( !__FD_Is_valid( fd ) || !__FD_Table[ fd ].in_use )
- {
- __set_errno (EBADF);
- return -1;
- }
- if (buf == NULL)
- {
- __set_errno (EINVAL);
- return -1;
- }
-
- if ( !(__FD_Table[ fd ].flags & (O_WRONLY|O_RDWR)) ) /* is it writeable? */
- {
- __set_errno (EBADF);
- return -1;
- }
-
- /*
- * All open file descriptors are mapped to the console.
- */
-
- for ( count=0 ; count != nbytes ; count++ ) {
- if ( _Console_Putc(data[ count ]) == -1 )
- return -1;
- if ( data[count] == '\n' && _Console_Putc('\r') == -1 )
- return -1;
- }
-
- return count;
-}
-
-libc_hidden_def (__libc_write)
-weak_alias (__libc_write, __write)
-libc_hidden_weak (__write)
-weak_alias (__libc_write, write)
diff --git a/sysdeps/unix/sysv/linux/cris/Dist b/sysdeps/unix/sysv/linux/cris/Dist
deleted file mode 100644
index 1b8a7e6..0000000
--- a/sysdeps/unix/sysv/linux/cris/Dist
+++ /dev/null
@@ -1,5 +0,0 @@
-clone.S
-setresuid.c
-setresgid.c
-setfsuid.c
-setfsgid.c
diff --git a/sysdeps/unix/sysv/linux/cris/_G_config.h b/sysdeps/unix/sysv/linux/cris/_G_config.h
deleted file mode 100644
index 083a00a..0000000
--- a/sysdeps/unix/sysv/linux/cris/_G_config.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* This file is needed by libio to define various configuration parameters.
- These are always the same in the GNU C library. */
-
-/* We have to keep a separate copy for CRIS, because we don't use thunks,
- and libstdc++-v2 (which we currently use) cares. The C++ ABI is
- changed totally with GCC 3.0, where we should not need a separate file. */
-
-#ifndef _G_config_h
-#define _G_config_h 1
-
-/* Define types for libio in terms of the standard internal type names. */
-
-#include <bits/types.h>
-#define __need_size_t
-#define __need_wchar_t
-#define __need_wint_t
-#define __need_NULL
-#include <stddef.h>
-#ifndef _WINT_T
-/* Integral type unchanged by default argument promotions that can
- hold any value corresponding to members of the extended character
- set, as well as at least one value that does not correspond to any
- member of the extended character set. */
-# define _WINT_T
-typedef unsigned int wint_t;
-#endif
-#define __need_mbstate_t
-#include <wchar.h>
-#define _G_size_t size_t
-typedef struct
-{
- __off_t __pos;
- __mbstate_t __state;
-} _G_fpos_t;
-typedef struct
-{
- __off64_t __pos;
- __mbstate_t __state;
-} _G_fpos64_t;
-#define _G_ssize_t __ssize_t
-#define _G_off_t __off_t
-#define _G_off64_t __off64_t
-#define _G_pid_t __pid_t
-#define _G_uid_t __uid_t
-#define _G_wchar_t wchar_t
-#define _G_wint_t wint_t
-#define _G_stat64 stat64
-#include <gconv.h>
-typedef union
-{
- struct __gconv_info __cd;
- struct
- {
- struct __gconv_info __cd;
- struct __gconv_step_data __data;
- } __combined;
-} _G_iconv_t;
-
-typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
-typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
-typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
-typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
-
-#define _G_HAVE_BOOL 1
-
-
-/* These library features are always available in the GNU C library. */
-#define _G_HAVE_ATEXIT 1
-#define _G_HAVE_SYS_CDEFS 1
-#define _G_HAVE_SYS_WAIT 1
-#define _G_NEED_STDARG_H 1
-#define _G_va_list __gnuc_va_list
-
-#define _G_HAVE_PRINTF_FP 1
-#define _G_HAVE_MMAP 1
-#define _G_HAVE_LONG_DOUBLE_IO 1
-#define _G_HAVE_IO_FILE_OPEN 1
-#define _G_HAVE_IO_GETLINE_INFO 1
-
-#define _G_IO_IO_FILE_VERSION 0x20001
-
-#define _G_OPEN64 __open64
-#define _G_LSEEK64 __lseek64
-#define _G_MMAP64 __mmap64
-#define _G_FSTAT64(fd,buf) __fxstat64 (_STAT_VER, fd, buf)
-
-/* This is defined by <bits/stat.h> if `st_blksize' exists. */
-#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE)
-
-#define _G_BUFSIZ 8192
-
-/* These are the vtbl details for ELF. */
-#define _G_NAMES_HAVE_UNDERSCORE 0
-#define _G_VTABLE_LABEL_HAS_LENGTH 1
-#undef _G_USING_THUNKS
-#define _G_VTABLE_LABEL_PREFIX "_vt."
-#define _G_VTABLE_LABEL_PREFIX_ID _vt.
-
-
-#if defined __cplusplus || defined __STDC__
-# define _G_ARGS(ARGLIST) ARGLIST
-#else
-# define _G_ARGS(ARGLIST) ()
-#endif
-
-#endif /* _G_config.h */
diff --git a/sysdeps/unix/sysv/linux/cris/bits/fcntl.h b/sysdeps/unix/sysv/linux/cris/bits/fcntl.h
deleted file mode 100644
index 36799aa..0000000
--- a/sysdeps/unix/sysv/linux/cris/bits/fcntl.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/* O_*, F_*, FD_* bit values for Linux.
- Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2004
- 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _FCNTL_H
-# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-#endif
-
-
-#include <sys/types.h>
-
-/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
- located on an ext2 file system */
-#define O_ACCMODE 0003
-#define O_RDONLY 00
-#define O_WRONLY 01
-#define O_RDWR 02
-#define O_CREAT 0100 /* not fcntl */
-#define O_EXCL 0200 /* not fcntl */
-#define O_NOCTTY 0400 /* not fcntl */
-#define O_TRUNC 01000 /* not fcntl */
-#define O_APPEND 02000
-#define O_NONBLOCK 04000
-#define O_NDELAY O_NONBLOCK
-#define O_SYNC 010000
-#define O_FSYNC O_SYNC
-#define O_ASYNC 020000
-
-#ifdef __USE_GNU
-# define O_DIRECT 040000 /* Direct disk access. */
-# define O_DIRECTORY 0200000 /* Must be a directory. */
-# define O_NOFOLLOW 0400000 /* Do not follow links. */
-# define O_NOATIME 01000000 /* Do not set atime. */
-#endif
-
-/* For now Linux has synchronisity options for data and read operations.
- We define the symbols here but let them do the same as O_SYNC since
- this is a superset. */
-#if defined __USE_POSIX199309 || defined __USE_UNIX98
-# define O_DSYNC O_SYNC /* Synchronize data. */
-# define O_RSYNC O_SYNC /* Synchronize read operations. */
-#endif
-
-#ifdef __USE_LARGEFILE64
-# define O_LARGEFILE 0100000
-#endif
-
-/* Values for the second argument to `fcntl'. */
-#define F_DUPFD 0 /* Duplicate file descriptor. */
-#define F_GETFD 1 /* Get file descriptor flags. */
-#define F_SETFD 2 /* Set file descriptor flags. */
-#define F_GETFL 3 /* Get file status flags. */
-#define F_SETFL 4 /* Set file status flags. */
-#ifndef __USE_FILE_OFFSET64
-# define F_GETLK 5 /* Get record locking info. */
-# define F_SETLK 6 /* Set record locking info (non-blocking). */
-# define F_SETLKW 7 /* Set record locking info (blocking). */
-#else
-# define F_GETLK F_GETLK64 /* Get record locking info. */
-# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
-# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
-#endif
-#define F_GETLK64 12 /* Get record locking info. */
-#define F_SETLK64 13 /* Set record locking info (non-blocking). */
-#define F_SETLKW64 14 /* Set record locking info (blocking). */
-
-#if defined __USE_BSD || defined __USE_UNIX98
-# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
-# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
-#endif
-
-#ifdef __USE_GNU
-# define F_SETSIG 10 /* Set number of signal to be sent. */
-# define F_GETSIG 11 /* Get number of signal to be sent. */
-#endif
-
-#ifdef __USE_GNU
-# define F_SETLEASE 1024 /* Set a lease. */
-# define F_GETLEASE 1025 /* Enquire what lease is active. */
-# define F_NOTIFY 1026 /* Request notfications on a directory. */
-#endif
-
-/* For F_[GET|SET]FL. */
-#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
-
-/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
-#define F_RDLCK 0 /* Read lock. */
-#define F_WRLCK 1 /* Write lock. */
-#define F_UNLCK 2 /* Remove lock. */
-
-/* For old implementation of bsd flock(). */
-#define F_EXLCK 4 /* or 3 */
-#define F_SHLCK 8 /* or 4 */
-
-#ifdef __USE_BSD
-/* Operations for bsd flock(), also used by the kernel implementation. */
-# define LOCK_SH 1 /* shared lock */
-# define LOCK_EX 2 /* exclusive lock */
-# define LOCK_NB 4 /* or'd with one of the above to prevent
- blocking */
-# define LOCK_UN 8 /* remove lock */
-#endif
-
-#ifdef __USE_GNU
-# define LOCK_MAND 32 /* This is a mandatory flock: */
-# define LOCK_READ 64 /* ... which allows concurrent read operations. */
-# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
-# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
-#endif
-
-#ifdef __USE_GNU
-/* Types of directory notifications that may be requested with F_NOTIFY. */
-# define DN_ACCESS 0x00000001 /* File accessed. */
-# define DN_MODIFY 0x00000002 /* File modified. */
-# define DN_CREATE 0x00000004 /* File created. */
-# define DN_DELETE 0x00000008 /* File removed. */
-# define DN_RENAME 0x00000010 /* File renamed. */
-# define DN_ATTRIB 0x00000020 /* File changed attibutes. */
-# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
-#endif
-
-struct flock
- {
- short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
- short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
-#ifndef __USE_FILE_OFFSET64
- __off_t l_start; /* Offset where the lock begins. */
- __off_t l_len; /* Size of the locked area; zero means until EOF. */
-#else
- __off64_t l_start; /* Offset where the lock begins. */
- __off64_t l_len; /* Size of the locked area; zero means until EOF. */
-#endif
- __pid_t l_pid; /* Process holding the lock. */
- };
-
-#ifdef __USE_LARGEFILE64
-struct flock64
- {
- short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
- short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
- __off64_t l_start; /* Offset where the lock begins. */
- __off64_t l_len; /* Size of the locked area; zero means until EOF. */
- __pid_t l_pid; /* Process holding the lock. */
- };
-#endif
-
-/* Define some more compatibility macros to be backward compatible with
- BSD systems which did not managed to hide these kernel macros. */
-#ifdef __USE_BSD
-# define FAPPEND O_APPEND
-# define FFSYNC O_FSYNC
-# define FASYNC O_ASYNC
-# define FNONBLOCK O_NONBLOCK
-# define FNDELAY O_NDELAY
-#endif /* Use BSD. */
-
-/* Advise to `posix_fadvise'. */
-#ifdef __USE_XOPEN2K
-# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
-# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
-# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
-# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
-# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
-# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
-#endif
-
-__BEGIN_DECLS
-
-/* Provide kernel hint to read ahead. */
-extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
- __THROW;
-
-__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/cris/bits/mman.h b/sysdeps/unix/sysv/linux/cris/bits/mman.h
deleted file mode 100644
index b66c0bd..0000000
--- a/sysdeps/unix/sysv/linux/cris/bits/mman.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Definitions for POSIX memory map interface. Linux/CRIS version.
- Copyright (C) 1997, 2000, 2001, 2003 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* The following definitions basically come from the kernel headers.
- But the kernel header is not namespace clean. */
-
-
-/* Protections are chosen from these bits, OR'd together. The
- implementation does not necessarily support PROT_EXEC or PROT_WRITE
- without PROT_READ. The only guarantees are that no writing will be
- allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
-
-#define PROT_READ 0x1 /* Page can be read. */
-#define PROT_WRITE 0x2 /* Page can be written. */
-#define PROT_EXEC 0x4 /* Page can be executed. */
-#define PROT_NONE 0x0 /* Page can not be accessed. */
-#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of
- growsdown vma (mprotect only). */
-#define PROT_GROWSUP 0x02000000 /* Extend change to start of
- growsup vma (mprotect only). */
-
-/* Sharing types (must choose one and only one of these). */
-#define MAP_SHARED 0x01 /* Share changes. */
-#define MAP_PRIVATE 0x02 /* Changes are private. */
-#ifdef __USE_MISC
-# define MAP_TYPE 0x0f /* Mask for type of mapping. */
-#endif
-
-/* Other flags. */
-#define MAP_FIXED 0x10 /* Interpret addr exactly. */
-#ifdef __USE_MISC
-# define MAP_FILE 0
-# define MAP_ANONYMOUS 0x20 /* Don't use a file. */
-# define MAP_ANON MAP_ANONYMOUS
-#endif
-
-/* These are Linux-specific. */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN 0x0100 /* Stack-like segment. */
-# define MAP_DENYWRITE 0x0800 /* ETXTBSY */
-# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */
-# define MAP_LOCKED 0x2000 /* Lock the mapping. */
-# define MAP_NORESERVE 0x4000 /* Don't check for reservations. */
-#endif
-
-/* Flags to `msync'. */
-#define MS_ASYNC 1 /* Sync memory asynchronously. */
-#define MS_SYNC 4 /* Synchronous memory sync. */
-#define MS_INVALIDATE 2 /* Invalidate the caches. */
-
-/* Flags for `mlockall'. */
-#define MCL_CURRENT 1 /* Lock all currently mapped pages. */
-#define MCL_FUTURE 2 /* Lock all additions to address
- space. */
-
-/* Flags for `mremap'. */
-#ifdef __USE_GNU
-# define MREMAP_MAYMOVE 1
-#endif
-
-/* Advice to `madvise'. */
-#ifdef __USE_BSD
-# define MADV_NORMAL 0 /* No further special treatment. */
-# define MADV_RANDOM 1 /* Expect random page references. */
-# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */
-# define MADV_WILLNEED 3 /* Will need these pages. */
-# define MADV_DONTNEED 4 /* Don't need these pages. */
-#endif
-
-/* The POSIX people had to invent similar names for the same things. */
-#ifdef __USE_XOPEN2K
-# define POSIX_MADV_NORMAL 0 /* No further special treatment. */
-# define POSIX_MADV_RANDOM 1 /* Expect random page references. */
-# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */
-# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */
-# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */
-#endif
diff --git a/sysdeps/unix/sysv/linux/cris/brk.c b/sysdeps/unix/sysv/linux/cris/brk.c
deleted file mode 100644
index ce49445..0000000
--- a/sysdeps/unix/sysv/linux/cris/brk.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* brk system call for Linux/CRIS.
- Copyright (C) 1995, 1996, 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <errno.h>
-#include <unistd.h>
-#include <sysdep.h>
-
-/* This must be initialized data because commons can't have aliases. */
-void *__curbrk = 0;
-
-int
-__brk (void *addr)
-{
- unsigned char *newbrk;
-
- newbrk = (unsigned char *) INLINE_SYSCALL (brk, 1, addr);
-
- __curbrk = newbrk;
-
- if (newbrk < (unsigned char *) addr)
- {
- __set_errno (ENOMEM);
- return -1;
- }
-
- return 0;
-}
-weak_alias (__brk, brk)
diff --git a/sysdeps/unix/sysv/linux/cris/chown.c b/sysdeps/unix/sysv/linux/cris/chown.c
deleted file mode 100644
index 1961622..0000000
--- a/sysdeps/unix/sysv/linux/cris/chown.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/m68k/chown.c>
diff --git a/sysdeps/unix/sysv/linux/cris/clone.S b/sysdeps/unix/sysv/linux/cris/clone.S
deleted file mode 100644
index b201643..0000000
--- a/sysdeps/unix/sysv/linux/cris/clone.S
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-
-/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */
-
- .syntax no_register_prefix
-
- .text
-ENTRY (__clone)
- /* Sanity check arguments: No NULL function pointers. Allow a NULL
- stack pointer though; it makes the kernel allocate stack. */
- test.d r10
- beq 1f
- nop
-
- /* We need to muck with a few registers. */
- movem r1,[sp=sp-8]
-
- /* Save the function pointer and argument. We can't save them
- onto the new stack since it can be NULL. */
- move.d r10,r0
- move.d r13,r1
-
- /* Move the other arguments into place for the system call. */
- move.d r11,r10
- move.d r12,r11
-
- /* Do the system call. */
- movu.w SYS_ify (clone),r9
- break 13
- test.d r10
- beq .Lthread_start
- nop
-
- /* Jump to error handler if we get (unsigned) -4096 .. 0xffffffff. */
- cmps.w -4096,r10
- bhs 0f
- movem [sp+],r1
-
- /* In parent, successful return. (Avoid using "ret" - it's a macro.) */
- Ret
- nop
-
-.Lthread_start:
- /* Terminate frame pointers here. */
- moveq 0,r8
-
- /* I've told you once. */
- move.d r1,r10
- jsr r0
-
- SETUP_PIC
- PLTCALL (_exit)
-
- /* Die horribly. */
- test.d [6809]
-
- /* Stop the unstoppable. */
-9:
- ba 9b
- nop
-
-/* Local error handler. */
-1:
- movs.w -EINVAL,r10
- /* Drop through into the ordinary error handler. */
-PSEUDO_END (__clone)
-
-weak_alias (__clone, clone)
diff --git a/sysdeps/unix/sysv/linux/cris/fchown.c b/sysdeps/unix/sysv/linux/cris/fchown.c
deleted file mode 100644
index 3a69ecc..0000000
--- a/sysdeps/unix/sysv/linux/cris/fchown.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/fchown.c>
diff --git a/sysdeps/unix/sysv/linux/cris/fcntl.c b/sysdeps/unix/sysv/linux/cris/fcntl.c
deleted file mode 100644
index ea951bc..0000000
--- a/sysdeps/unix/sysv/linux/cris/fcntl.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/sysdeps/unix/sysv/linux/cris/fxstat.c b/sysdeps/unix/sysv/linux/cris/fxstat.c
deleted file mode 100644
index 4f219f0..0000000
--- a/sysdeps/unix/sysv/linux/cris/fxstat.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/sysdeps/unix/sysv/linux/cris/getegid.c b/sysdeps/unix/sysv/linux/cris/getegid.c
deleted file mode 100644
index 37b4b4a..0000000
--- a/sysdeps/unix/sysv/linux/cris/getegid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getegid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/geteuid.c b/sysdeps/unix/sysv/linux/cris/geteuid.c
deleted file mode 100644
index ebcb555..0000000
--- a/sysdeps/unix/sysv/linux/cris/geteuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/geteuid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/getgid.c b/sysdeps/unix/sysv/linux/cris/getgid.c
deleted file mode 100644
index 0a4d606..0000000
--- a/sysdeps/unix/sysv/linux/cris/getgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getgid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/getgroups.c b/sysdeps/unix/sysv/linux/cris/getgroups.c
deleted file mode 100644
index 102ea24..0000000
--- a/sysdeps/unix/sysv/linux/cris/getgroups.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We also have to rewrite the kernel gid_t to the user land type. */
-#include <sysdeps/unix/sysv/linux/i386/getgroups.c>
diff --git a/sysdeps/unix/sysv/linux/cris/getresgid.c b/sysdeps/unix/sysv/linux/cris/getresgid.c
deleted file mode 100644
index b703a41..0000000
--- a/sysdeps/unix/sysv/linux/cris/getresgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getresgid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/getresuid.c b/sysdeps/unix/sysv/linux/cris/getresuid.c
deleted file mode 100644
index 0b14cef..0000000
--- a/sysdeps/unix/sysv/linux/cris/getresuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getresuid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/getrlimit.c b/sysdeps/unix/sysv/linux/cris/getrlimit.c
deleted file mode 100644
index fc06dbd..0000000
--- a/sysdeps/unix/sysv/linux/cris/getrlimit.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
diff --git a/sysdeps/unix/sysv/linux/cris/getrlimit64.c b/sysdeps/unix/sysv/linux/cris/getrlimit64.c
deleted file mode 100644
index fef018f..0000000
--- a/sysdeps/unix/sysv/linux/cris/getrlimit64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getrlimit64.c>
diff --git a/sysdeps/unix/sysv/linux/cris/getuid.c b/sysdeps/unix/sysv/linux/cris/getuid.c
deleted file mode 100644
index d682c79..0000000
--- a/sysdeps/unix/sysv/linux/cris/getuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getuid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/lchown.c b/sysdeps/unix/sysv/linux/cris/lchown.c
deleted file mode 100644
index c89de99..0000000
--- a/sysdeps/unix/sysv/linux/cris/lchown.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lchown.c>
diff --git a/sysdeps/unix/sysv/linux/cris/lockf64.c b/sysdeps/unix/sysv/linux/cris/lockf64.c
deleted file mode 100644
index a88f5a7..0000000
--- a/sysdeps/unix/sysv/linux/cris/lockf64.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/sysdeps/unix/sysv/linux/cris/lxstat.c b/sysdeps/unix/sysv/linux/cris/lxstat.c
deleted file mode 100644
index 2371cd9..0000000
--- a/sysdeps/unix/sysv/linux/cris/lxstat.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
-
diff --git a/sysdeps/unix/sysv/linux/cris/mmap.S b/sysdeps/unix/sysv/linux/cris/mmap.S
deleted file mode 100644
index 3c74d59..0000000
--- a/sysdeps/unix/sysv/linux/cris/mmap.S
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-
-#include "kernel-features.h"
-
-#include <asm/errno.h>
-
-/* Rather than dragging in yet another kernel file, <asm/page.h>, we
- define it here. Provide for easy override. */
-#ifndef PAGE_SHIFT
-#define PAGE_SHIFT 13
-#endif
-
- .syntax no_register_prefix
-
-/* This is __ptr_t
- __mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset) */
-
- ENTRY (__mmap)
-
- /* Only accept a offset (and address) being a multiple of PAGE_SIZE,
- since we only pass the page part in the system call. */
- move.d [sp+4],r9
- btstq (PAGE_SHIFT - 1),r9
- bne 1f
- btstq (PAGE_SHIFT - 1),r10
-
- bne 1f
- lsrq PAGE_SHIFT,r9
-
- move [sp],mof
- move srp,[sp]
- move r9,srp
-
- movu.b SYS_ify (mmap2),r9
- break 13
-
- cmps.w -4096,r10
- bhs 0f
- move [sp],srp
-
- Ret
- nop
-
-/* Local error handler. */
-1:
- movs.w -EINVAL,r10
- /* Drop through into the ordinary error handler. */
-PSEUDO_END (__mmap)
-
-weak_alias (__mmap, mmap)
diff --git a/sysdeps/unix/sysv/linux/cris/mmap64.S b/sysdeps/unix/sysv/linux/cris/mmap64.S
deleted file mode 100644
index d711144..0000000
--- a/sysdeps/unix/sysv/linux/cris/mmap64.S
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-
-#include "kernel-features.h"
-
-#include <asm/errno.h>
-
-/* Rather than dragging in yet another kernel file, <asm/page.h>, we
- define it here. Provide for easy override. */
-#ifndef PAGE_SHIFT
-#define PAGE_SHIFT 13
-#endif
-
-/* This is: __ptr_t
- __mmap64 (__ptr_t addr, size_t len, int prot, int flags, int fd,
- off64_t offset); */
-
-/* This was done in C, but the resulting code didn't look anywhere near
- nice, and mmap64 is important enough to have fast code. Rather than
- fixing (the generic bits in) gcc, we make sure not to depend on it by
- writing code that GCC cannot reasonably generate. */
-
- .syntax no_register_prefix
-
-ENTRY (__mmap64)
-
- move [sp],mof
- move.d [sp+4],r9
-
- /* Only accept an offset being a multiple of PAGE_SIZE, ditto address. */
- btstq (PAGE_SHIFT - 1),r9
- bne 1f
- lsrq PAGE_SHIFT,r9
-
- btstq (PAGE_SHIFT - 1),r10
- bne 1f
- move.d r9,[sp]
-
- /* We have to store the adjusted part somewhere we can "or" from.
- No registers available, so let's re-use the incoming low-part
- parameter location. */
- move.d [sp+8],r9
-
- swapwbr r9
- /* Check if the highest bits (now the lowest bits) are zero. They
- must be, since we're actually calling a system function
- specifying the size in *pages* in a single dword. Thus you can
- mmap64 PAGE_SIZE * 4 Gbyte. */
- btstq (PAGE_SHIFT - 1),r9
- bne 1f
- swapwbr r9
-
- lslq (32 - PAGE_SHIFT),r9
- or.d [sp],r9
- move srp,[sp]
- move r9,srp
-
- movu.b SYS_ify (mmap2),r9
- break 13
-
- cmps.w -4096,r10
- bhs 0f
- move [sp],srp
-
- Ret
- nop
-
-/* Local error handler. */
-1:
- movs.w -EINVAL,r10
- /* Drop through into the ordinary error handler. */
-PSEUDO_END (__mmap64)
-
-weak_alias (__mmap64, mmap64)
diff --git a/sysdeps/unix/sysv/linux/cris/msgctl.c b/sysdeps/unix/sysv/linux/cris/msgctl.c
deleted file mode 100644
index 9f9b843..0000000
--- a/sysdeps/unix/sysv/linux/cris/msgctl.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/msgctl.c>
diff --git a/sysdeps/unix/sysv/linux/cris/profil-counter.h b/sysdeps/unix/sysv/linux/cris/profil-counter.h
deleted file mode 100644
index 37adc1f..0000000
--- a/sysdeps/unix/sysv/linux/cris/profil-counter.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Low-level statistical profiling support function. Linux/CRIS version.
- Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <signal.h>
-
-static void
-profil_counter (int signo, struct sigcontext *scp)
-{
- profil_count ((void *) scp->regs.irp);
-}
diff --git a/sysdeps/unix/sysv/linux/cris/register-dump.h b/sysdeps/unix/sysv/linux/cris/register-dump.h
deleted file mode 100644
index 309728b..0000000
--- a/sysdeps/unix/sysv/linux/cris/register-dump.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Dump registers.
- Copyright (C) 1998, 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stddef.h>
-#include <sys/uio.h>
-#include <stdio-common/_itoa.h>
-
-/* We will print the register dump in this format:
-
- R0: XXXXXXXX R1: XXXXXXXX R2: XXXXXXXX R3: XXXXXXXX
- R4: XXXXXXXX R5: XXXXXXXX R6: XXXXXXXX R7: XXXXXXXX
- R8: XXXXXXXX R9: XXXXXXXX R10: XXXXXXXX R11: XXXXXXXX
- R12: XXXXXXXX R13: XXXXXXXX SP: XXXXXXXX PC: XXXXXXXX
-DCCR: XXXXXXXX SRP: XXXXXXXX */
-
-static void
-hexvalue (unsigned long int value, char *buf, size_t len)
-{
- char *cp = _itoa_word (value, buf + len, 16, 0);
- while (cp > buf)
- *--cp = '0';
-}
-
-static void register_dump (int fd, struct sigcontext *ctx)
-{
- char regs[18][8];
- struct iovec iov[36], *next_iov = iov;
- struct pt_regs *rx = &ctx->regs;
-
-#define ADD_STRING(str) \
- next_iov->iov_base = (char *) (str); \
- next_iov->iov_len = strlen (str); \
- ++next_iov
-#define ADD_MEM(str, len) \
- next_iov->iov_base = (str); \
- next_iov->iov_len = (len); \
- ++next_iov
-
- /* Generate strings of register contents. */
- hexvalue (rx->r0, regs[0], 8);
- hexvalue (rx->r1, regs[1], 8);
- hexvalue (rx->r2, regs[2], 8);
- hexvalue (rx->r3, regs[3], 8);
- hexvalue (rx->r4, regs[4], 8);
- hexvalue (rx->r5, regs[5], 8);
- hexvalue (rx->r6, regs[6], 8);
- hexvalue (rx->r7, regs[7], 8);
- hexvalue (rx->r8, regs[8], 8);
- hexvalue (rx->r9, regs[9], 8);
- hexvalue (rx->r10, regs[10], 8);
- hexvalue (rx->r11, regs[11], 8);
- hexvalue (rx->r12, regs[12], 8);
- hexvalue (rx->r13, regs[13], 8);
- hexvalue (ctx->usp, regs[14], 8);
- hexvalue (rx->irp, regs[17], 8);
- hexvalue (rx->dccr, regs[15], 8);
- hexvalue (rx->srp, regs[16], 8);
-
- /* Generate the output. */
- ADD_STRING ("Register dump:\n\n R0: ");
- ADD_MEM (regs[0], 8);
- ADD_STRING (" R1: ");
- ADD_MEM (regs[1], 8);
- ADD_STRING (" R2: ");
- ADD_MEM (regs[2], 8);
- ADD_STRING (" R3: ");
- ADD_MEM (regs[3], 8);
- ADD_STRING ("\n R4: ");
- ADD_MEM (regs[4], 8);
- ADD_STRING (" R5: ");
- ADD_MEM (regs[5], 8);
- ADD_STRING (" R6: ");
- ADD_MEM (regs[6], 8);
- ADD_STRING (" R7: ");
- ADD_MEM (regs[7], 8);
- ADD_STRING ("\n R8: ");
- ADD_MEM (regs[8], 8);
- ADD_STRING (" R9: ");
- ADD_MEM (regs[9], 8);
- ADD_STRING (" R10: ");
- ADD_MEM (regs[10], 8);
- ADD_STRING (" R11: ");
- ADD_MEM (regs[11], 8);
- ADD_STRING ("\n R12: ");
- ADD_MEM (regs[12], 8);
- ADD_STRING (" R13: ");
- ADD_MEM (regs[13], 8);
- ADD_STRING (" SP: ");
- ADD_MEM (regs[14], 8);
- ADD_STRING (" PC: ");
- ADD_MEM (regs[17], 8);
- ADD_STRING ("\nDCCR: ");
- ADD_MEM (regs[15], 8);
- ADD_STRING (" SRP: ");
- ADD_MEM (regs[16], 4);
-
- /* Write the stuff out. */
- writev (fd, iov, next_iov - iov);
-}
-
-#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/sysdeps/unix/sysv/linux/cris/semctl.c b/sysdeps/unix/sysv/linux/cris/semctl.c
deleted file mode 100644
index e9b1a48..0000000
--- a/sysdeps/unix/sysv/linux/cris/semctl.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/semctl.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setegid.c b/sysdeps/unix/sysv/linux/cris/setegid.c
deleted file mode 100644
index 2e3a54c..0000000
--- a/sysdeps/unix/sysv/linux/cris/setegid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setegid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/seteuid.c b/sysdeps/unix/sysv/linux/cris/seteuid.c
deleted file mode 100644
index 18e41d0..0000000
--- a/sysdeps/unix/sysv/linux/cris/seteuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/seteuid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setfsgid.c b/sysdeps/unix/sysv/linux/cris/setfsgid.c
deleted file mode 100644
index 0886712..0000000
--- a/sysdeps/unix/sysv/linux/cris/setfsgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setfsgid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setfsuid.c b/sysdeps/unix/sysv/linux/cris/setfsuid.c
deleted file mode 100644
index a9f22eb..0000000
--- a/sysdeps/unix/sysv/linux/cris/setfsuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setfsuid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setgid.c b/sysdeps/unix/sysv/linux/cris/setgid.c
deleted file mode 100644
index 377021d..0000000
--- a/sysdeps/unix/sysv/linux/cris/setgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setgid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setgroups.c b/sysdeps/unix/sysv/linux/cris/setgroups.c
deleted file mode 100644
index 0e70862..0000000
--- a/sysdeps/unix/sysv/linux/cris/setgroups.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We also have to rewrite the kernel gid_t to the user land type. */
-#include <sysdeps/unix/sysv/linux/i386/setgroups.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setregid.c b/sysdeps/unix/sysv/linux/cris/setregid.c
deleted file mode 100644
index 99c57ad..0000000
--- a/sysdeps/unix/sysv/linux/cris/setregid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setregid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setresgid.c b/sysdeps/unix/sysv/linux/cris/setresgid.c
deleted file mode 100644
index daca1a4..0000000
--- a/sysdeps/unix/sysv/linux/cris/setresgid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresgid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setresuid.c b/sysdeps/unix/sysv/linux/cris/setresuid.c
deleted file mode 100644
index 3aeabe9..0000000
--- a/sysdeps/unix/sysv/linux/cris/setresuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setresuid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setreuid.c b/sysdeps/unix/sysv/linux/cris/setreuid.c
deleted file mode 100644
index 8ad6122..0000000
--- a/sysdeps/unix/sysv/linux/cris/setreuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setreuid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setrlimit.c b/sysdeps/unix/sysv/linux/cris/setrlimit.c
deleted file mode 100644
index bfaef74..0000000
--- a/sysdeps/unix/sysv/linux/cris/setrlimit.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setrlimit.c>
diff --git a/sysdeps/unix/sysv/linux/cris/setuid.c b/sysdeps/unix/sysv/linux/cris/setuid.c
deleted file mode 100644
index de39437..0000000
--- a/sysdeps/unix/sysv/linux/cris/setuid.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/setuid.c>
diff --git a/sysdeps/unix/sysv/linux/cris/shmctl.c b/sysdeps/unix/sysv/linux/cris/shmctl.c
deleted file mode 100644
index 7eac638..0000000
--- a/sysdeps/unix/sysv/linux/cris/shmctl.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/shmctl.c>
diff --git a/sysdeps/unix/sysv/linux/cris/socket.S b/sysdeps/unix/sysv/linux/cris/socket.S
deleted file mode 100644
index 38b4ac5..0000000
--- a/sysdeps/unix/sysv/linux/cris/socket.S
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 1995, 1996, 1997, 1999, 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-#include <socketcall.h>
-
-#define P(a, b) P2(a, b)
-#define P2(a, b) a##b
-
-/* The socket-oriented system calls are handled unusally in Linux.
- They are all gated through the single `socketcall' system call number.
- `socketcall' takes two arguments: the first is the subcode, specifying
- which socket function is being called; and the second is a pointer to
- the arguments to the specific function.
-
- The .S files for the other calls just #define socket and #include this.
- They also #define a 'number-of-arguments' word in NARGS, which
- defaults to 3. */
-
-#ifndef NARGS
-#ifdef socket
-#error NARGS not defined
-#endif
-#define NARGS 3
-#endif
-
- .syntax no_register_prefix
-
-#ifndef __socket
-#define __socket P(__,socket)
-#endif
-
-ENTRY(__socket)
- subq NARGS*4,sp
-
-#if NARGS >= 2
- move.d sp,r9
- move.d r10,[r9+]
-#else
- move.d r10,[sp]
-#endif
-#if NARGS >= 2
- move.d r11,[r9+]
-#endif
-#if NARGS >= 3
- move.d r12,[r9+]
-#endif
-#if NARGS >= 4
- move.d r13,[r9+]
-#endif
-#if NARGS >= 5
- move.d [sp+NARGS*4],r13
- move.d r13,[r9+]
-#endif
-#if NARGS >= 6
- move.d [sp+NARGS*4+4],r13
- move.d r13,[r9+]
-#endif
-#if NARGS >= 7
- move.d [sp+NARGS*4+8],r13
- move.d r13,[r9+]
-#endif
-#if NARGS >= 8
- move.d [sp+NARGS*4+12],r13
- move.d r13,[r9+]
-#endif
-#if NARGS >= 9
-#error Too many arguments!
-#endif
- moveq P(SOCKOP_,socket),r10
- move.d sp,r11
- movu.w SYS_ify(socketcall),r9
- break 13
- cmps.w -4096,r10
- bhs 0f
- addq NARGS*4,sp
- Ret
- nop
-PSEUDO_END (__socket)
-
-weak_alias (__socket, socket)
diff --git a/sysdeps/unix/sysv/linux/cris/sys/ucontext.h b/sysdeps/unix/sysv/linux/cris/sys/ucontext.h
deleted file mode 100644
index 2d3aee0..0000000
--- a/sysdeps/unix/sysv/linux/cris/sys/ucontext.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000, 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
-
-#include <features.h>
-#include <signal.h>
-
-#include <bits/sigcontext.h>
-
-
-/* Type for general register. */
-typedef long int greg_t;
-
-/* Number of general registers. */
-#define NGREG 20
-
-/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
-
-/* A placeholder type for floating-point register. */
-typedef long int fpreg_t;
-
-/* A placeholder; CRIS does not have any fp regs. */
-typedef unsigned long fpregset_t;
-
-/* A machine context is exactly a sigcontext. */
-typedef struct sigcontext mcontext_t;
-
-/* Userlevel context. */
-typedef struct ucontext
- {
- unsigned long int uc_flags;
- struct ucontext *uc_link;
- stack_t uc_stack;
- mcontext_t uc_mcontext;
- __sigset_t uc_sigmask;
- } ucontext_t;
-
-#endif /* sys/ucontext.h */
diff --git a/sysdeps/unix/sysv/linux/cris/syscall.S b/sysdeps/unix/sysv/linux/cris/syscall.S
deleted file mode 100644
index 03626b0..0000000
--- a/sysdeps/unix/sysv/linux/cris/syscall.S
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-
- .syntax no_register_prefix
-
-/* Make syscall (callno, ...) into a system call. */
-
-ENTRY (syscall)
- move.d r10,r9
- move.d r11,r10
- move.d r12,r11
- move.d r13,r12
- move.d [sp],r13
- move srp,[sp]
- move [sp+4],mof
- move [sp+8],srp
- break 13
- cmps.w -4096,r10
- bhs 0f
- move [sp],srp
- Ret
- nop
-PSEUDO_END (syscall)
diff --git a/sysdeps/unix/sysv/linux/cris/sysdep.S b/sysdeps/unix/sysv/linux/cris/sysdep.S
deleted file mode 100644
index e53e7bb..0000000
--- a/sysdeps/unix/sysv/linux/cris/sysdep.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright (C) 2001 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-
-/* The syscall stubs jump here when they detect an error, bot for PIC and
- non-PIC. */
-
- .syntax no_register_prefix
-
-ENTRY (__syscall_error)
- neg.d r10,r10
-
-#ifdef _LIBC_REENTRANT
- push r10
- push srp
-
- /* Note that __syscall_error is only visible within this library,
- and no-one passes it on as a pointer, so can assume that R0 (GOT
- pointer) is correctly set up. */
- PLTCALL (__errno_location)
-
- pop srp
- pop r11
- move.d r11,[r10]
-
-#else /* not _LIBC_REENTRANT */
-# ifdef __PIC__
- move.d [r0+C_SYMBOL_NAME(errno:GOT)],r9
- move.d r10,[r9]
-# else
- move.d r10,[C_SYMBOL_NAME(errno)]
-# endif
-#endif /* _LIBC_REENTRANT */
-
-#ifdef __PIC__
-/* PIC callers are supposed to have R0 on stack, ready for us to restore.
- Callers are only allowed from within this DSO, so the GOT in r0 is the
- one we want to use.
-
- (Don't use "ret" - it's a macro). */
-
- moveq -1,r10
- Ret
- pop r0
-#else
- Ret
- moveq -1,r10
-#endif
-
-END (__syscall_error)
diff --git a/sysdeps/unix/sysv/linux/cris/sysdep.h b/sysdeps/unix/sysv/linux/cris/sysdep.h
deleted file mode 100644
index 5013dd5..0000000
--- a/sysdeps/unix/sysv/linux/cris/sysdep.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/* Assembler macros for CRIS.
- Copyright (C) 1999, 2001, 2003 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <asm/unistd.h>
-#include <sysdeps/cris/sysdep.h>
-#include <sys/syscall.h>
-#include "config.h"
-
-#undef SYS_ify
-#define SYS_ify(syscall_name) (__NR_##syscall_name)
-
-
-#ifdef __ASSEMBLER__
-
-/* For Linux we can use the system call table in the header file
- /usr/include/asm/unistd.h
- of the kernel. But these symbols do not follow the SYS_* syntax
- so we have to redefine the `SYS_ify' macro here. */
-#undef SYS_ify
-#define SYS_ify(syscall_name) __NR_##syscall_name
-
-/* ELF-like local names start with `.L'. */
-#undef L
-#define L(name) .L##name
-
-/* Linux uses a negative return value to indicate syscall errors,
- unlike most Unices, which use the condition codes' carry flag.
-
- Since version 2.1 the return value of a system call might be
- negative even if the call succeeded. E.g., the `lseek' system call
- might return a large offset. Therefore we must not anymore test
- for < 0, but test for a real error by making sure the value in %eax
- is a real error number. Linus said he will make sure the no syscall
- returns a value in -1 .. -4095 as a valid result so we can safely
- test with -4095. */
-
-/* Syscall wrappers consist of
- #include <sysdep.h>
- PSEUDO (...)
- ret
- PSEUDO_END (...)
-
- which expand to the following. */
-
-/* Linux takes system call arguments in registers:
- syscall number R9
- arg 1 R10
- arg 2 R11
- arg 3 R12
- arg 4 R13
- arg 5 MOF
- arg 6 SRP
-
- The compiler calls us by the C convention:
- syscall number in the DO_CALL macro
- arg 1 R10
- arg 2 R11
- arg 3 R12
- arg 4 R13
- arg 5 [SP]
- arg 6 [SP + 4]
- */
-
-/* Note that we use "bhs", since we want to match
- (unsigned) -4096 .. 0xffffffff. Using "ble" would match
- -4096 .. -2**31. */
-#define PSEUDO(name, syscall_name, args) \
- ENTRY (name) @ \
- DOARGS_##args @ \
- movu.w SYS_ify (syscall_name),$r9 @ \
- break 13 @ \
- cmps.w -4096,$r10 @ \
- bhs 0f @ \
- nop @ \
- UNDOARGS_return_##args
-
-/* Ouch! We have to remember not to use "ret" in assembly-code.
- ("Luckily", mnemonics are case-insensitive.)
- Note that we assume usage is exactly:
- PSEUDO (...)
- ret
- PSEUDO_END (...)
- so we can put all payload into PSEUDO (except for error handling). */
-
-#define ret
-
-#define PSEUDO_END(name) \
-0: @ \
- SETUP_PIC @ \
- PLTJUMP (syscall_error) @ \
- END (name)
-
-#define PSEUDO_NOERRNO(name, syscall_name, args) \
- ENTRY (name) @ \
- DOARGS_##args @ \
- movu.w SYS_ify (syscall_name),$r9 @ \
- break 13 @ \
- UNDOARGS_return_##args
-
-#define ret_NOERRNO
-
-#define PSEUDO_END_NOERRNO(name) \
- END (name)
-
-#define DOARGS_0
-#define DOARGS_1
-#define DOARGS_2
-#define DOARGS_3
-#define DOARGS_4
-#define DOARGS_5 \
- move [$sp],$mof
-
-/* To avoid allocating stack-space, we re-use the arg 5 (MOF) entry by
- storing SRP into it. If called with too-few arguments, we will crash,
- but that will happen in the general case too. */
-#define DOARGS_6 \
- DOARGS_5 @ \
- move $srp,[$sp] @ \
- move [$sp+4],$srp
-
-#define UNDOARGS_return_0 \
- Ret @ \
- nop
-
-#define UNDOARGS_return_1 UNDOARGS_return_0
-#define UNDOARGS_return_2 UNDOARGS_return_0
-#define UNDOARGS_return_3 UNDOARGS_return_0
-#define UNDOARGS_return_4 UNDOARGS_return_0
-#define UNDOARGS_return_5 UNDOARGS_return_0
-
-/* We assume the following code will be "ret" and "PSEUDO_END". */
-#define UNDOARGS_return_return_6 \
- jump [$sp]
-
-#else /* not __ASSEMBLER__ */
-
-#undef INLINE_SYSCALL
-#define INLINE_SYSCALL(name, nr, args...) \
- ({ \
- unsigned long __sys_res; \
- register unsigned long __res asm ("r10"); \
- LOAD_ARGS_c_##nr (args) \
- register unsigned long __callno asm ("r9") \
- = SYS_ify (name); \
- asm volatile (LOAD_ARGS_asm_##nr (args) \
- "break 13" \
- : "=r" (__res) \
- : ASM_ARGS_##nr (args) \
- : ASM_CLOBBER_##nr); \
- __sys_res = __res; \
- \
- if (__sys_res >= (unsigned long) -4096) \
- { \
- __set_errno (- __sys_res); \
- __sys_res = (unsigned long) -1; \
- } \
- (long int) __sys_res; \
- })
-
-#define LOAD_ARGS_c_0()
-#define LOAD_ARGS_asm_0()
-#define ASM_CLOBBER_0 "memory"
-#define ASM_ARGS_0() "r" (__callno)
-
-#define LOAD_ARGS_c_1(r10) \
- LOAD_ARGS_c_0() \
- register unsigned long __r10 __asm__ ("r10") = (unsigned long) (r10);
-#define LOAD_ARGS_asm_1(r10) LOAD_ARGS_asm_0 ()
-#define ASM_CLOBBER_1 ASM_CLOBBER_0
-#define ASM_ARGS_1(r10) ASM_ARGS_0 (), "0" (__r10)
-
-#define LOAD_ARGS_c_2(r10, r11) \
- LOAD_ARGS_c_1(r10) \
- register unsigned long __r11 __asm__ ("r11") = (unsigned long) (r11);
-#define LOAD_ARGS_asm_2(r10, r11) LOAD_ARGS_asm_1 (r10)
-#define ASM_CLOBBER_2 ASM_CLOBBER_1
-#define ASM_ARGS_2(r10, r11) ASM_ARGS_1 (r10), "r" (__r11)
-
-#define LOAD_ARGS_c_3(r10, r11, r12) \
- LOAD_ARGS_c_2(r10, r11) \
- register unsigned long __r12 __asm__ ("r12") = (unsigned long) (r12);
-#define LOAD_ARGS_asm_3(r10, r11, r12) LOAD_ARGS_asm_2 (r10, r11)
-#define ASM_CLOBBER_3 ASM_CLOBBER_2
-#define ASM_ARGS_3(r10, r11, r12) ASM_ARGS_2 (r10, r11), "r" (__r12)
-
-#define LOAD_ARGS_c_4(r10, r11, r12, r13) \
- LOAD_ARGS_c_3(r10, r11, r12) \
- register unsigned long __r13 __asm__ ("r13") = (unsigned long) (r13);
-#define LOAD_ARGS_asm_4(r10, r11, r12, r13) LOAD_ARGS_asm_3 (r10, r11, r12)
-#define ASM_CLOBBER_4 ASM_CLOBBER_3
-#define ASM_ARGS_4(r10, r11, r12, r13) ASM_ARGS_3 (r10, r11, r12), "r" (__r13)
-
-#define LOAD_ARGS_c_5(r10, r11, r12, r13, mof) \
- LOAD_ARGS_c_4(r10, r11, r12, r13)
-#define LOAD_ARGS_asm_5(r10, r11, r12, r13, mof) \
- LOAD_ARGS_asm_4 (r10, r11, r12, r13) "move %6,$mof\n\t"
-#define ASM_CLOBBER_5 ASM_CLOBBER_4
-#define ASM_ARGS_5(r10, r11, r12, r13, mof) \
- ASM_ARGS_4 (r10, r11, r12, r13), "g" (mof)
-
-#define LOAD_ARGS_c_6(r10, r11, r12, r13, mof, srp) \
- LOAD_ARGS_c_5(r10, r11, r12, r13, mof)
-#define LOAD_ARGS_asm_6(r10, r11, r12, r13, mof, srp) \
- LOAD_ARGS_asm_5(r10, r11, r12, r13, mof) \
- "move %7,$srp\n\t"
-#define ASM_CLOBBER_6 ASM_CLOBBER_5, "srp"
-#define ASM_ARGS_6(r10, r11, r12, r13, mof, srp) \
- ASM_ARGS_5 (r10, r11, r12, r13, mof), "g" (srp)
-
-#endif /* not __ASSEMBLER__ */
diff --git a/sysdeps/unix/sysv/linux/cris/vfork.S b/sysdeps/unix/sysv/linux/cris/vfork.S
deleted file mode 100644
index 74a8556..0000000
--- a/sysdeps/unix/sysv/linux/cris/vfork.S
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 1999, 2001, 2002 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-
-PSEUDO (__vfork, vfork, 0)
- Ret
- nop
-PSEUDO_END (__vfork)
-libc_hidden_def (__vfork)
-
-weak_alias (__vfork, vfork)
diff --git a/sysdeps/unix/sysv/linux/cris/xstat.c b/sysdeps/unix/sysv/linux/cris/xstat.c
deleted file mode 100644
index e9869f5..0000000
--- a/sysdeps/unix/sysv/linux/cris/xstat.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/sysdeps/z8000/add_n.s b/sysdeps/z8000/add_n.s
deleted file mode 100644
index 4d29026..0000000
--- a/sysdeps/z8000/add_n.s
+++ /dev/null
@@ -1,53 +0,0 @@
-! Z8000 __mpn_add_n -- Add two limb vectors of equal, non-zero length.
-
-! Copyright (C) 1993, 1994 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, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr r7
-! s1_ptr r6
-! s2_ptr r5
-! size r4
-
-! If we are really crazy, we can use push to write a few result words
-! backwards, using push just because it is faster than reg+disp. We'd
-! then add 2x the number of words written to r7...
-
- unseg
- .text
- even
- global ___mpn_add_n
-___mpn_add_n:
- pop r0,@r6
- pop r1,@r5
- add r0,r1
- ld @r7,r0
- dec r4
- jr eq,Lend
-Loop: pop r0,@r6
- pop r1,@r5
- adc r0,r1
- inc r7,#2
- ld @r7,r0
- dec r4
- jr ne,Loop
-Lend: ld r2,r4 ! use 0 already in r4
- adc r2,r2
- ret t
diff --git a/sysdeps/z8000/gmp-mparam.h b/sysdeps/z8000/gmp-mparam.h
deleted file mode 100644
index 4216df6..0000000
--- a/sysdeps/z8000/gmp-mparam.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* gmp-mparam.h -- Compiler/machine parameter header file.
-
-Copyright (C) 1991, 1993, 1994 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, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-MA 02111-1307, USA. */
-
-#define BITS_PER_MP_LIMB 16
-#define BYTES_PER_MP_LIMB 2
-#define BITS_PER_LONGINT 32
-#define BITS_PER_INT 16
-#define BITS_PER_SHORTINT 16
-#define BITS_PER_CHAR 8
diff --git a/sysdeps/z8000/mul_1.s b/sysdeps/z8000/mul_1.s
deleted file mode 100644
index e449dfa..0000000
--- a/sysdeps/z8000/mul_1.s
+++ /dev/null
@@ -1,68 +0,0 @@
-! Z8000 __mpn_mul_1 -- Multiply a limb vector with a limb and store
-! the result in a second limb vector.
-
-! Copyright (C) 1993, 1994, 1995 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, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr r7
-! s1_ptr r6
-! size r5
-! s2_limb r4
-
- unseg
- .text
- even
- global ___mpn_mul_1
-___mpn_mul_1:
- sub r2,r2 ! zero carry limb
- and r4,r4
- jr mi,Lneg
-
-Lpos: pop r1,@r6
- ld r9,r1
- mult rr8,r4
- and r1,r1 ! shift msb of loaded limb into cy
- jr mi,Lp ! branch if loaded limb's msb is set
- add r8,r4 ! hi_limb += sign_comp2
-Lp: add r9,r2 ! lo_limb += cy_limb
- xor r2,r2
- adc r2,r8
- ld @r7,r9
- inc r7,#2
- dec r5
- jr ne,Lpos
- ret t
-
-Lneg: pop r1,@r6
- ld r9,r1
- mult rr8,r4
- add r8,r1 ! hi_limb += sign_comp1
- and r1,r1
- jr mi,Ln
- add r8,r4 ! hi_limb += sign_comp2
-Ln: add r9,r2 ! lo_limb += cy_limb
- xor r2,r2
- adc r2,r8
- ld @r7,r9
- inc r7,#2
- dec r5
- jr ne,Lneg
- ret t
diff --git a/sysdeps/z8000/sub_n.s b/sysdeps/z8000/sub_n.s
deleted file mode 100644
index c078775..0000000
--- a/sysdeps/z8000/sub_n.s
+++ /dev/null
@@ -1,54 +0,0 @@
-! Z8000 __mpn_sub_n -- Subtract two limb vectors of the same length > 0 and
-! store difference in a third limb vector.
-
-! Copyright (C) 1993, 1994 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, write to
-! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-! MA 02111-1307, USA.
-
-
-! INPUT PARAMETERS
-! res_ptr r7
-! s1_ptr r6
-! s2_ptr r5
-! size r4
-
-! If we are really crazy, we can use push to write a few result words
-! backwards, using push just because it is faster than reg+disp. We'd
-! then add 2x the number of words written to r7...
-
- unseg
- .text
- even
- global ___mpn_sub_n
-___mpn_sub_n:
- pop r0,@r6
- pop r1,@r5
- sub r0,r1
- ld @r7,r0
- dec r4
- jr eq,Lend
-Loop: pop r0,@r6
- pop r1,@r5
- sbc r0,r1
- inc r7,#2
- ld @r7,r0
- dec r4
- jr ne,Loop
-Lend: ld r2,r4 ! use 0 already in r4
- adc r2,r2
- ret t