diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-02-08 00:16:57 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-02-08 00:16:57 +0000 |
commit | 464263cc00549d2597b6d25309d55b1e4a6b1aac (patch) | |
tree | 4646131a3aa8ebb1b1749c453f7939fcd54ee2ec /ports/sysdeps/am33 | |
parent | 32749f6cd23f65a2df1bafbf9b69749bdded4b10 (diff) | |
download | glibc-464263cc00549d2597b6d25309d55b1e4a6b1aac.tar.gz glibc-464263cc00549d2597b6d25309d55b1e4a6b1aac.tar.xz glibc-464263cc00549d2597b6d25309d55b1e4a6b1aac.zip |
Remove am33 port.
This patch removes the am33 port (no other port #includes any files from it), as previously discussed (see <https://sourceware.org/ml/libc-ports/2014-01/msg00046.html>).
Diffstat (limited to 'ports/sysdeps/am33')
38 files changed, 0 insertions, 2057 deletions
diff --git a/ports/sysdeps/am33/Implies b/ports/sysdeps/am33/Implies deleted file mode 100644 index 780c4e2467..0000000000 --- a/ports/sysdeps/am33/Implies +++ /dev/null @@ -1,3 +0,0 @@ -wordsize-32 -ieee754/flt-32 -ieee754/dbl-64 diff --git a/ports/sysdeps/am33/__longjmp.S b/ports/sysdeps/am33/__longjmp.S deleted file mode 100644 index aea25a1899..0000000000 --- a/ports/sysdeps/am33/__longjmp.S +++ /dev/null @@ -1,60 +0,0 @@ -/* longjmp for AM33. - Copyright 2001-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> -#define _ASM -#define _SETJMP_H -#include <bits/setjmp.h> -#include <asm-syntax.h> - -ENTRY (__longjmp) - mov d0,a0 - mov (8,a0),d2 - mov d2,mdr - mov (0,a0),d2 - mov (4,a0),d3 - mov (12,a0),a2 - mov (16,a0),a3 - mov (20,a0),a1 - mov a1,sp - add 24,a0 - mov (a0+),r4 - mov (a0+),r5 - mov (a0+),r6 - mov (a0+),r7 -#ifdef __AM33_2__ - fmov (a0+),fs4 - fmov (a0+),fs5 - fmov (a0+),fs6 - fmov (a0+),fs7 - fmov (a0+),fs8 - fmov (a0+),fs9 - fmov (a0+),fs10 - fmov (a0+),fs11 - fmov (a0+),fs12 - fmov (a0+),fs13 - fmov (a0+),fs14 - fmov (a0+),fs15 - fmov (a0+),fs16 - fmov (a0+),fs17 - fmov (a0+),fs18 - fmov (a0+),fs19 -#endif - mov d1,d0 - retf [],0 -END (__longjmp) diff --git a/ports/sysdeps/am33/atomicity.h b/ports/sysdeps/am33/atomicity.h deleted file mode 100644 index f3d1496186..0000000000 --- a/ports/sysdeps/am33/atomicity.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Low-level functions for atomic operations. AM33 version. - Copyright 1999-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com>. - Based on ../sparc/sparc32/atomicity.h - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _ATOMICITY_H -#define _ATOMICITY_H 1 - -#include <inttypes.h> -#include <stdint.h> - -#define __acquire_lock(lock) \ - __asm__ __volatile__("1: bset %1, (%0)\n\t" \ - " beq 1b" \ - : : "a" (&(lock)), "d" (1) \ - : "memory") - -#define __release_lock(lock) lock = 0 - -static int -__attribute__ ((unused)) -exchange_and_add (volatile uint32_t *mem, int val) -{ - static unsigned char lock; - int result; - - __acquire_lock (lock); - - result = *mem; - *mem += val; - - __release_lock (lock); - - return result; -} - -static void -__attribute__ ((unused)) -atomic_add (volatile uint32_t *mem, int val) -{ - static unsigned char lock; - - __acquire_lock (lock); - - *mem += val; - - __release_lock (lock); -} - -static int -__attribute__ ((unused)) -compare_and_swap (volatile long int *p, long int oldval, long int newval) -{ - static unsigned char lock; - int ret; - - __acquire_lock (lock); - - if (*p != oldval) - ret = 0; - else - { - *p = newval; - ret = 1; - } - - __release_lock (lock); - - return ret; -} - -#endif /* atomicity.h */ diff --git a/ports/sysdeps/am33/bits/endian.h b/ports/sysdeps/am33/bits/endian.h deleted file mode 100644 index 7423f09570..0000000000 --- a/ports/sysdeps/am33/bits/endian.h +++ /dev/null @@ -1,7 +0,0 @@ -/* AM33 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/ports/sysdeps/am33/bits/setjmp.h b/ports/sysdeps/am33/bits/setjmp.h deleted file mode 100644 index 46754ff4d1..0000000000 --- a/ports/sysdeps/am33/bits/setjmp.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2001-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -/* Define the machine-dependent type `jmp_buf'. AM33 version. */ - -#ifndef _SETJMP_H -# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." -#endif - -#ifndef _ASM -typedef int __jmp_buf[26]; -#endif diff --git a/ports/sysdeps/am33/bsd-_setjmp.S b/ports/sysdeps/am33/bsd-_setjmp.S deleted file mode 100644 index 9bbfcbbba7..0000000000 --- a/ports/sysdeps/am33/bsd-_setjmp.S +++ /dev/null @@ -1 +0,0 @@ -/* _setjmp is in setjmp.S */ diff --git a/ports/sysdeps/am33/bsd-setjmp.S b/ports/sysdeps/am33/bsd-setjmp.S deleted file mode 100644 index b6b239e67d..0000000000 --- a/ports/sysdeps/am33/bsd-setjmp.S +++ /dev/null @@ -1 +0,0 @@ -/* setjmp is in setjmp.S */ diff --git a/ports/sysdeps/am33/dl-machine.h b/ports/sysdeps/am33/dl-machine.h deleted file mode 100644 index 10e6e4662b..0000000000 --- a/ports/sysdeps/am33/dl-machine.h +++ /dev/null @@ -1,478 +0,0 @@ -/* Machine-dependent ELF dynamic relocation inline functions. AM33 version. - Copyright (C) 1995-2014 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 Library General Public License as - published by the Free Software Foundation; either version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef dl_machine_h -#define dl_machine_h - -#define ELF_MACHINE_NAME "mn10300" - -#include <sys/param.h> - -/* Return nonzero iff ELF header is compatible with the running host. */ -static inline int __attribute__ ((unused)) -elf_machine_matches_host (const Elf32_Ehdr *ehdr) -{ - return ehdr->e_machine == EM_MN10300; -} - - -/* Return the link-time address of _DYNAMIC. Conveniently, this is the - first element of the GOT. This must be inlined in a function which - uses global data. */ -static inline Elf32_Addr __attribute__ ((unused)) -elf_machine_dynamic (void) -{ - register Elf32_Addr *got asm ("a2"); - return *got; -} - - -/* Return the run-time load address of the shared object. */ -static inline Elf32_Addr __attribute__ ((unused)) -elf_machine_load_address (void) -{ - register Elf32_Addr gotaddr asm ("a2"); - Elf32_Addr off, gotval; - - asm ("mov _dl_start@GOTOFF,%0" : "=r" (off)); - asm ("mov (_dl_start@GOT,%1),%0" : "=r" (gotval) : "r" (gotaddr)); - - return off + gotaddr - gotval; -} - -#ifndef PROF -/* We add a declaration of this function here so that in dl-runtime.c - the ELF_MACHINE_RUNTIME_TRAMPOLINE macro really can pass the parameters - in registers. - - We cannot use this scheme for profiling because the _mcount call - destroys the passed register information. */ -static ElfW(Addr) fixup (struct link_map *l, ElfW(Word) reloc_offset) - __attribute__ ((unused)); -static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset, - ElfW(Addr) retaddr) - __attribute__ ((unused)); -#endif - -/* Set up the loaded object described by L so its unrelocated PLT - entries will jump to the on-demand fixup code in dl-runtime.c. */ - -static inline int __attribute__ ((unused)) -elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) -{ - Elf32_Addr *got; - extern void _dl_runtime_resolve (Elf32_Word) attribute_hidden; - extern void _dl_runtime_profile (Elf32_Word) attribute_hidden; - - 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 .rel.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 (GLRO(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. */ -#ifndef PROF -# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\ - .text\n\ - .globl _dl_runtime_resolve\n\ - .type _dl_runtime_resolve, @function\n\ -_dl_runtime_resolve:\n\ - add -12,sp # Preserve registers otherwise clobbered.\n\ - mov d1,(20,sp)\n\ - mov d0,(16,sp)\n\ - mov r1,d0\n\ - mov r0,d1\n\ - call fixup,[],0 # Call resolver.\n\ - mov d0,a0\n\ - mov (12,sp),d1 # Copy return address back to mdr,\n\ - mov d1,mdr # in case the callee returns with retf\n\ - mov (16,sp),d0 # Get register content back.\n\ - mov (20,sp),d1\n\ - add 12,sp\n\ - jmp (a0)\n\ - .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\ -\n\ - .globl _dl_runtime_profile\n\ - .type _dl_runtime_profile, @function\n\ -_dl_runtime_profile:\n\ - add -12,sp # Preserve registers otherwise clobbered.\n\ - mov d1,(20,sp)\n\ - mov d0,(16,sp)\n\ - mov r1,d0\n\ - mov r0,d1\n\ - call profile_fixup,[],0 # Call resolver.\n\ - mov d0,a0\n\ - mov (12,sp),d1 # Copy return address back to mdr,\n\ - mov d1,mdr # in case the callee returns with retf\n\ - mov (16,sp),d0 # Get register content back.\n\ - mov (20,sp),d1\n\ - add 12,sp\n\ - jmp (a0)\n\ - .size _dl_runtime_profile, .-_dl_runtime_profile\n\ - .previous\n\ -"); -#else -# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\n\ - .text\n\ - .globl _dl_runtime_resolve\n\ - .globl _dl_runtime_profile\n\ - .type _dl_runtime_resolve, @function\n\ - .type _dl_runtime_profile, @function\n\ -_dl_runtime_resolve:\n\ -_dl_runtime_profile:\n\ - add -12,sp # Preserve registers otherwise clobbered.\n\ - mov d1,(20,sp)\n\ - mov d0,(16,sp)\n\ - mov r1,d0\n\ - mov r0,d1\n\ - call profile_fixup,[],0 # Call resolver.\n\ - mov d0,a0\n\ - mov (12,sp),d1 # Copy return address back to mdr,\n\ - mov d1,mdr # in case the callee returns with retf\n\ - mov (16,sp),d0 # Get register content back.\n\ - mov (20,sp),d1\n\ - add 12,sp\n\ - jmp (a0)\n\ - .size _dl_runtime_resolve, .-_dl_runtime_resolve\n\ - .size _dl_runtime_profile, .-_dl_runtime_profile\n\ - .previous\n\ -"); -#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 ("\n\ - .text\n\ -.globl _start\n\ -.globl _dl_start_user\n\ -_start:\n\ - mov 0,a3 # Mark the top of the stack\n\ - mov sp,a1\n\ - add -20,sp # Prepare for function call\n\ - mov a1,d0\n\ - call _dl_start,[],0\n\ -_dl_start_user:\n\ - # Save the user entry point address in d2.\n\ - mov d0,d2\n\ - # Point a2 at the GOT.\n\ -0: mov pc,a2\n\ - add _GLOBAL_OFFSET_TABLE_ - (0b-.),a2\n\ - # Store the highest stack address\n\ - mov (__libc_stack_end@GOT,a2),a0\n\ - mov a1,(a0)\n\ - # See if we were run as a command with the executable file\n\ - # name as an extra leading argument.\n\ - mov (_dl_skip_args@GOT,a2),a0\n\ - mov (a0),d0\n\ - # Pop the original argument count.\n\ - mov (20,sp),d3\n\ - # Subtract _dl_skip_args from it.\n\ - sub d0,d3\n\ - # Adjust the stack pointer to skip _dl_skip_args words.\n\ - asl2 d0\n\ - mov sp,a0\n\ - add d0,a0\n\ - mov a0,sp\n\ - # Push argc back on the stack.\n\ - mov d3,(20,sp)\n\ - # The special initializer gets called with the stack just\n\ - # as the application's entry point will see it; it can\n\ - # switch stacks if it moves these contents over.\n\ -" RTLD_START_SPECIAL_INIT "\n\ - # Load the parameters again.\n\ - # (d0, d1, (12,sp), (16,sp)) = (_dl_loaded, argc, argv, envp)\n\ - add 24,a0\n\ - mov a0,(12,sp) # a0 is 24+sp\n\ - mov d3,d1 # d3 contained argc\n\ - inc d3\n\ - asl2 d3 # d3 is now (argc+1)*4,\n\ - add d3,a0 # the offset between argv and envp\n\ - mov a0,(16,sp)\n\ - mov (_rtld_local@GOTOFF,a2),d0\n\ - # Call the function to run the initializers.\n\ - call _dl_init@PLT,[],0\n\ - # Pass our finalizer function to the user in d0, as per ELF ABI.\n\ - mov (_dl_fini@GOT,a2),d0\n\ - add 20,sp\n\ - # Jump to the user's entry point.\n\ - mov d2,a1\n\ - jmp (a1)\n\ - .previous\n\ -"); - -#ifndef RTLD_START_SPECIAL_INIT -#define RTLD_START_SPECIAL_INIT /* nothing */ -#endif - -/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so - PLT entries should not be allowed to define the value. - ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one - of the main executable's symbols, as for a COPY reloc. */ -#define elf_machine_type_class(type) \ - ((((type) == R_MN10300_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \ - | (((type) == R_MN10300_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_MN10300_JMP_SLOT - -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 - -/* The mn10300 never uses Elf32_Rel relocations. */ -#define ELF_MACHINE_NO_REL 1 - -/* 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, int skip_ifunc) -{ - const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); - Elf32_Addr value, *reloc_addr; - - /* Make sure we drop any previous alignment assumptions. */ - asm ("" : "=r" (reloc_addr) : "0" (reloc_addr_arg)); - -#define COPY_UNALIGNED_WORD(sw, tw, align) \ - { \ - unsigned long *__sl = (void*)&(sw), *__tl = (void*)&(tw); \ - unsigned short *__ss = (void*)&(sw), *__ts = (void*)&(tw); \ - unsigned char *__sc = (void*)&(sw), *__tc = (void*)&(tw); \ - switch ((align)) \ - { \ - case 0: \ - *__tl = *__sl; \ - break; \ - case 2: \ - *__ts++ = *__ss++; \ - *__ts = *__ss; \ - break; \ - default: \ - *__tc++ = *__sc++; \ - *__tc++ = *__sc++; \ - *__tc++ = *__sc++; \ - *__tc = *__sc; \ - break; \ - } \ - } - -#define COPY_UNALIGNED_HALFWORD(sw, tw, align) \ - { \ - unsigned short *__ss = (void*)&(sw), *__ts = (void*)&(tw); \ - unsigned char *__sc = (void*)&(sw), *__tc = (void*)&(tw); \ - switch ((align)) \ - { \ - case 0: \ - *__ts = *__ss; \ - break; \ - default: \ - *__tc++ = *__sc++; \ - *__tc = *__sc; \ - break; \ - } \ - } - -#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC - if (__builtin_expect (r_type == R_MN10300_RELATIVE, 0)) - { -# if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC - /* This is defined in rtld.c, but nowhere in the static libc.a; - make the reference weak so static programs can still link. - This declaration cannot be done when compiling rtld.c (i.e. - #ifdef RTLD_BOOTSTRAP) because rtld.c contains the common - defn for _dl_rtld_map, which is incompatible with a weak decl - in the same file. */ - weak_extern (_dl_rtld_map); - if (map != &_dl_rtld_map) /* Already done in rtld itself. */ -# endif - { - COPY_UNALIGNED_WORD (*reloc_addr, value, (int) reloc_addr & 3); - value += map->l_addr; - COPY_UNALIGNED_WORD (value, *reloc_addr, (int) reloc_addr & 3); - } - } -# ifndef RTLD_BOOTSTRAP - else if (__builtin_expect (r_type == R_MN10300_NONE, 0)) - return; -# endif - else -#endif - { -#ifndef RTLD_BOOTSTRAP - const Elf32_Sym *const refsym = sym; -#endif - - value = RESOLVE (&sym, version, ELF32_R_TYPE (reloc->r_info)); - if (sym) - value += sym->st_value; - value += reloc->r_addend; /* Assume copy relocs have zero addend. */ - - switch (r_type) - { -#ifndef RTLD_BOOTSTRAP - case R_MN10300_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 - || (GLRO(dl_verbose) && sym->st_size < refsym->st_size)) - { - extern char **_dl_argv; - 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", - _dl_argv[0] ?: "<program name unknown>", - strtab + refsym->st_name); - } - memcpy (reloc_addr, (void *) value, MIN (sym->st_size, - refsym->st_size)); - break; -#endif - case R_MN10300_GLOB_DAT: - case R_MN10300_JMP_SLOT: - /* These addresses are always aligned. */ - *reloc_addr = value; - break; - case R_MN10300_32: - COPY_UNALIGNED_WORD (value, *reloc_addr, (int) reloc_addr & 3); - break; -#ifndef RTLD_BOOTSTRAP - case R_MN10300_16: - COPY_UNALIGNED_HALFWORD (value, *reloc_addr, (int) reloc_addr & 1); - break; - case R_MN10300_8: - *(char *) reloc_addr = value; - break; - case R_MN10300_PCREL32: - value -= (Elf32_Addr) reloc_addr; - COPY_UNALIGNED_WORD (value, *reloc_addr, (int) reloc_addr & 3); - break; - case R_MN10300_PCREL16: - value -= (Elf32_Addr) reloc_addr; - COPY_UNALIGNED_HALFWORD (value, *reloc_addr, (int) reloc_addr & 1); - break; - case R_MN10300_PCREL8: - value -= (Elf32_Addr) reloc_addr; - *(char *) reloc_addr = (value - (Elf32_Addr) reloc_addr); - break; -#endif - case R_MN10300_NONE: /* Alright, Wilbur. */ - break; -#if !defined RTLD_BOOTSTRAP || defined _NDEBUG - default: - _dl_reloc_bad_type (map, ELFW(R_TYPE) (reloc->r_info), 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 value, *reloc_addr; - - asm ("" : "=r" (reloc_addr) : "0" (reloc_addr_arg)); - - COPY_UNALIGNED_WORD (*reloc_addr, value, (int)reloc_addr & 3); - value += l_addr; - COPY_UNALIGNED_WORD (value, *reloc_addr, (int)reloc_addr & 3); -} - -static inline void -elf_machine_lazy_rel (struct link_map *map, - Elf32_Addr l_addr, const Elf32_Rela *reloc, - int skip_ifunc) -{ - unsigned long int const r_type = ELF32_R_TYPE (reloc->r_info); - - /* Check for unexpected PLT reloc type. */ - if (__builtin_expect (r_type, R_MN10300_JMP_SLOT) == R_MN10300_JMP_SLOT) - { - Elf32_Addr* const reloc_addr = (void *)(l_addr + reloc->r_offset); - Elf32_Addr value; - - /* Perform a RELATIVE reloc on the .got entry that transfers - to the .plt. */ - COPY_UNALIGNED_WORD (*reloc_addr, value, (int)reloc_addr & 3); - value += l_addr; - COPY_UNALIGNED_WORD (value, *reloc_addr, (int)reloc_addr & 3); - } - else if (__builtin_expect (r_type, R_MN10300_NONE) != R_MN10300_NONE) - _dl_reloc_bad_type (map, ELFW(R_TYPE) (reloc->r_info), 1); - -} - -#endif /* RESOLVE */ diff --git a/ports/sysdeps/am33/elf/start.S b/ports/sysdeps/am33/elf/start.S deleted file mode 100644 index 265ad215c8..0000000000 --- a/ports/sysdeps/am33/elf/start.S +++ /dev/null @@ -1,78 +0,0 @@ -/* Startup code compliant to the ELF MN10300 ABI. - Copyright (C) 1995-2014 Free Software Foundation, Inc. - Contributed by Alexandre Oliva <aoliva@redhat.com> - Based on ../../i386/elf/start.S. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -/* This is the canonical entry point, usually the first thing in the text - segment. The SVR4/i386 ABI (pages 3-31, 3-32) says that when the entry - point runs, most registers' values are unspecified, except for: - - a0 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: - (4,sp) argc - (8,sp) argv[0] - ... - (4*(argc+1),sp) NULL - (4*(argc+2),sp) envp[0] - ... - NULL -*/ - - .text - .globl _start - .type _start,@function -_start: - /* 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. */ - mov sp,a3 - add -32,sp - - mov a3,(28,sp) /* stack_end. */ - mov d0,(24,sp) /* rtld_fini. */ - mov _fini, d3 - mov d3,(20,sp) /* fini. */ - mov _init, d2 - mov d2,(16,sp) /* init. */ - inc4 a3 - mov a3,(12,sp) /* argv. */ - - /* Set the initial frame pointer as 0, so that the bottom of - the stack is clearly marked. */ - mov 0,a3 - - mov (32,sp), d1 /* argc. */ - mov main, d0 /* main. */ - - /* Call the user's main function, and exit with its value. - But let the libc call main. */ - call __libc_start_main,[],0 - - call abort,[],0 /* Crash if somehow `exit' does return. */ - -/* 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/ports/sysdeps/am33/fpu/bits/fenv.h b/ports/sysdeps/am33/fpu/bits/fenv.h deleted file mode 100644 index e4a396dd0b..0000000000 --- a/ports/sysdeps/am33/fpu/bits/fenv.h +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright (C) 1998-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on the corresponding file in the mips port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _FENV_H -# error "Never use <bits/fenv.h> directly; include <fenv.h> instead." -#endif - - -/* Define bits representing the exception. We use the EF bit - positions of the appropriate bits in the FPCR register. */ -enum - { - FE_INEXACT = -#define FE_INEXACT 0x01 - FE_INEXACT, - FE_UNDERFLOW = -#define FE_UNDERFLOW 0x02 - FE_UNDERFLOW, - FE_OVERFLOW = -#define FE_OVERFLOW 0x04 - FE_OVERFLOW, - FE_DIVBYZERO = -#define FE_DIVBYZERO 0x08 - FE_DIVBYZERO, - FE_INVALID = -#define FE_INVALID 0x10 - FE_INVALID, - }; - -#define FE_ALL_EXCEPT \ - (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID) - -/* The AM33/2.0 FPU supports only Round to nearest. Bits 3<<16 are - reserved to represent other rounding modes. */ -enum - { - FE_TONEAREST = -#define FE_TONEAREST 0x00000 - FE_TONEAREST, - }; - - -/* Type representing exception flags. */ -typedef unsigned int fexcept_t; - - -/* Type representing floating-point environment. */ -typedef unsigned int fenv_t; - -/* If the default argument is used we use this value. */ -#define FE_DFL_ENV ((__const fenv_t *) -1) - -#ifdef __USE_GNU -/* Floating-point environment where none of the exception is masked. */ -# define FE_NOMASK_ENV ((__const fenv_t *) -2) -#endif diff --git a/ports/sysdeps/am33/fpu/fclrexcpt.c b/ports/sysdeps/am33/fpu/fclrexcpt.c deleted file mode 100644 index 12bda643fe..0000000000 --- a/ports/sysdeps/am33/fpu/fclrexcpt.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Clear given exceptions in current floating-point environment. - Copyright (C) 1998-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fenv_libc.h> -#include <fpu_control.h> -#include <shlib-compat.h> - -int -__feclearexcept (int excepts) -{ - fpu_control_t cw; - - /* Mask out unsupported bits/exceptions. */ - excepts &= FE_ALL_EXCEPT; - - /* Read the complete control word. */ - _FPU_GETCW (cw); - - /* Clear exception flag bits and cause bits. EF bits are cleared by - assigning 1 to them (and there's no way to set them); other bits - are copied normally. */ - - cw &= ~((excepts << CAUSE_SHIFT) | FE_ALL_EXCEPT); - cw |= excepts; - - /* Put the new data in effect. */ - _FPU_SETFCW (cw); - - /* Success. */ - return 0; -} - -libm_hidden_ver (__feclearexcept, feclearexcept) -versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2); diff --git a/ports/sysdeps/am33/fpu/fedisblxcpt.c b/ports/sysdeps/am33/fpu/fedisblxcpt.c deleted file mode 100644 index 5273d9023f..0000000000 --- a/ports/sysdeps/am33/fpu/fedisblxcpt.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Disable floating-point exceptions. - Copyright (C) 2000-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fenv_libc.h> -#include <fpu_control.h> - -int -fedisableexcept (int excepts) -{ - fpu_control_t new_exc, old_exc; - - /* Get the current control word. */ - _FPU_GETCW (new_exc); - - old_exc = (new_exc & ENABLE_MASK) >> ENABLE_SHIFT; - - excepts &= FE_ALL_EXCEPT; - - new_exc &= ~(excepts << ENABLE_SHIFT); - _FPU_SETCW (new_exc); - - return old_exc; -} diff --git a/ports/sysdeps/am33/fpu/feenablxcpt.c b/ports/sysdeps/am33/fpu/feenablxcpt.c deleted file mode 100644 index ae4808a458..0000000000 --- a/ports/sysdeps/am33/fpu/feenablxcpt.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Enable floating-point exceptions. - Copyright (C) 2000-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fenv_libc.h> -#include <fpu_control.h> - -int -feenableexcept (int excepts) -{ - fpu_control_t new_exc, old_exc; - - /* Get the current control word. */ - _FPU_GETCW (new_exc); - - old_exc = (new_exc & ENABLE_MASK) >> ENABLE_SHIFT; - - excepts &= FE_ALL_EXCEPT; - - new_exc |= excepts << ENABLE_SHIFT; - _FPU_SETCW (new_exc); - - return old_exc; -} diff --git a/ports/sysdeps/am33/fpu/fegetenv.c b/ports/sysdeps/am33/fpu/fegetenv.c deleted file mode 100644 index 87853bad18..0000000000 --- a/ports/sysdeps/am33/fpu/fegetenv.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Store current floating-point environment. - Copyright (C) 1998-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fpu_control.h> -#include <shlib-compat.h> - -int -__fegetenv (fenv_t *envp) -{ - _FPU_GETCW (*envp); - - /* Success. */ - return 0; -} - -versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2); diff --git a/ports/sysdeps/am33/fpu/fegetexcept.c b/ports/sysdeps/am33/fpu/fegetexcept.c deleted file mode 100644 index 01f7c0caa6..0000000000 --- a/ports/sysdeps/am33/fpu/fegetexcept.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Get enabled floating-point exceptions. - Copyright (C) 2000-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fenv_libc.h> -#include <fpu_control.h> - -int -fegetexcept (void) -{ - unsigned int exc; - - /* Get the current control word. */ - _FPU_GETCW (exc); - - return (exc & ENABLE_MASK) >> ENABLE_SHIFT; -} diff --git a/ports/sysdeps/am33/fpu/fegetround.c b/ports/sysdeps/am33/fpu/fegetround.c deleted file mode 100644 index d946d9b6e8..0000000000 --- a/ports/sysdeps/am33/fpu/fegetround.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Return current rounding direction. - Copyright (C) 1998-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fenv_libc.h> -#include <fpu_control.h> - -int -fegetround (void) -{ - int cw; - - /* Get control word. */ - _FPU_GETCW (cw); - - return (cw & ROUND_MASK); -} -libm_hidden_def (fegetround) diff --git a/ports/sysdeps/am33/fpu/feholdexcpt.c b/ports/sysdeps/am33/fpu/feholdexcpt.c deleted file mode 100644 index 1e662d0eec..0000000000 --- a/ports/sysdeps/am33/fpu/feholdexcpt.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Store current floating-point environment and clear exceptions. - Copyright (C) 2000-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fpu_control.h> - -int -feholdexcept (fenv_t *envp) -{ - fpu_control_t cw; - - /* Save the current state. */ - _FPU_GETCW (cw); - *envp = cw; - - /* Clear all exception enable bits and flags. */ - cw &= ~(_FPU_MASK_V|_FPU_MASK_Z|_FPU_MASK_O|_FPU_MASK_U|_FPU_MASK_I); - _FPU_SETFCW (cw); - - return 0; -} diff --git a/ports/sysdeps/am33/fpu/fenv_libc.h b/ports/sysdeps/am33/fpu/fenv_libc.h deleted file mode 100644 index ee19a04eb2..0000000000 --- a/ports/sysdeps/am33/fpu/fenv_libc.h +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright (C) 2000-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on the corresponding file in the mips port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _FENV_LIBC_H -#define _FENV_LIBC_H 1 - -/* Mask for enabling exceptions and for the CAUSE bits. */ -#define ENABLE_MASK 0x003E0U -#define CAUSE_MASK 0x07C00U -#define ROUND_MASK 0x30000U - -/* Shift for FE_* flags to get up to the ENABLE bits and the CAUSE bits. */ -#define ENABLE_SHIFT 5 -#define CAUSE_SHIFT 10 - -#endif /* _FENV_LIBC_H */ diff --git a/ports/sysdeps/am33/fpu/fesetenv.c b/ports/sysdeps/am33/fpu/fesetenv.c deleted file mode 100644 index 7a09cfb0dc..0000000000 --- a/ports/sysdeps/am33/fpu/fesetenv.c +++ /dev/null @@ -1,59 +0,0 @@ -/* Install given floating-point environment. - Copyright (C) 1998-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fpu_control.h> -#include <shlib-compat.h> - -int -__fesetenv (const fenv_t *envp) -{ - fpu_control_t cw; - - /* We want to clear all EF bits for the default end IEEE. */ - - if (envp == FE_DFL_ENV) - _FPU_SETFCW (_FPU_DEFAULT|FE_ALL_EXCEPT); - else if (envp == FE_NOMASK_ENV) - _FPU_SETFCW (_FPU_IEEE|FE_ALL_EXCEPT); - else - { - fpu_control_t temp; - - _FPU_GETCW (temp); - cw = *envp; - - /* If EF bits are cleared and the user requests them to be set, - we have to fail, because there's no way to do it. */ - if (~temp & cw & FE_ALL_EXCEPT) - return -1; - - /* We clear EF bits by storing a 1 in them, so flip the - FE_ALL_EXCEPT bits. */ - cw = (cw & ~FE_ALL_EXCEPT) | (~cw & FE_ALL_EXCEPT); - _FPU_SETFCW (cw); - } - - /* Success. */ - return 0; -} - -libm_hidden_ver (__fesetenv, fesetenv) -versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2); diff --git a/ports/sysdeps/am33/fpu/fesetround.c b/ports/sysdeps/am33/fpu/fesetround.c deleted file mode 100644 index 882e7dc576..0000000000 --- a/ports/sysdeps/am33/fpu/fesetround.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Set current rounding direction. - Copyright (C) 2004-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> - -int -fesetround (int round) -{ - /* The only supported rounding mode is to-nearest. Just check - whether we're switching to it. */ - return (round != FE_TONEAREST); -} diff --git a/ports/sysdeps/am33/fpu/feupdateenv.c b/ports/sysdeps/am33/fpu/feupdateenv.c deleted file mode 100644 index 11f9ef8116..0000000000 --- a/ports/sysdeps/am33/fpu/feupdateenv.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Install given floating-point environment and raise exceptions. - Copyright (C) 1998-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fpu_control.h> -#include <shlib-compat.h> - -int -__feupdateenv (const fenv_t *envp) -{ - int temp; - - /* Save current exceptions. */ - _FPU_GETCW (temp); - temp &= FE_ALL_EXCEPT; - - /* Install new environment. */ - fesetenv (envp); - - /* Raise the safed exception. Incidently for us the implementation - defined format of the values in objects of type fexcept_t is the - same as the ones specified using the FE_* constants. */ - feraiseexcept (temp); - - /* Success. */ - return 0; -} - -versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2); diff --git a/ports/sysdeps/am33/fpu/fgetexcptflg.c b/ports/sysdeps/am33/fpu/fgetexcptflg.c deleted file mode 100644 index 8b09e9797d..0000000000 --- a/ports/sysdeps/am33/fpu/fgetexcptflg.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Store current representation for exceptions. - Copyright (C) 1998-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fpu_control.h> -#include <shlib-compat.h> - -int -__fegetexceptflag (fexcept_t *flagp, int excepts) -{ - fexcept_t temp; - - /* Get the current exceptions. */ - _FPU_GETCW (temp); - - /* We only save the relevant bits here. In particular, care has to be - taken with the CAUSE bits, as an inadvertent restore later on could - generate unexpected exceptions. */ - - *flagp = temp & excepts & FE_ALL_EXCEPT; - - /* Success. */ - return 0; -} - -versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2); diff --git a/ports/sysdeps/am33/fpu/fpu_control.h b/ports/sysdeps/am33/fpu/fpu_control.h deleted file mode 100644 index 8b1715f3fd..0000000000 --- a/ports/sysdeps/am33/fpu/fpu_control.h +++ /dev/null @@ -1,73 +0,0 @@ -/* FPU control word bits. AM33/2.0 version. - Copyright (C) 1996-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on the corresponding file in the mips port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _FPU_CONTROL_H -#define _FPU_CONTROL_H - -/* AM33/2.0 FPU floating point control register bits. - * - * 31-22 -> reserved - * 21-18 -> floating-point condition codes (L, G, E, U) - * 17-16 -> rounding modes (00 is to-nearest; other values are reserved - * 15 -> reserved (read as 0, write with 0) - * 14-10 -> Exception Cause (inValid, divZero, Overflow, Underflow, Inexact) - * 9- 5 -> Exception Enable - * 4- 0 -> Exception Flag, cleared when exception cause is set - */ - -#include <features.h> -#include <fenv.h> - -/* masking of interrupts */ -#define _FPU_MASK_V 0x0200 /* Invalid operation */ -#define _FPU_MASK_Z 0x0100 /* Division by zero */ -#define _FPU_MASK_O 0x0080 /* Overflow */ -#define _FPU_MASK_U 0x0040 /* Underflow */ -#define _FPU_MASK_I 0x0020 /* Inexact operation */ - -/* rounding control */ -#define _FPU_RC_NEAREST 0x0 /* Only available mode */ - -#define _FPU_RESERVED 0xffc08000 /* Reserved bits in fpcr */ - - -/* The fdlibm code requires strict IEEE double precision arithmetic, - and no interrupts for exceptions, rounding to nearest. */ - -#define _FPU_DEFAULT 0x0000001f - -/* IEEE: same as above, but exceptions */ -#define _FPU_IEEE 0x000003ff - -/* Type of the control word. */ -typedef unsigned int fpu_control_t; - -/* Macros for accessing the hardware control word. _FPU_SETCW is - defined such that it won't modify the EF bits, that are cleared - when assigned bits that are set. Use SETFCW to get them actually - reset. */ -#define _FPU_SETFCW(cw) __asm__ ("fmov %0,fpcr" : : "ri" (cw)) -#define _FPU_SETCW(cw) _FPU_SETFCW((cw) & ~FE_ALL_EXCEPT) -#define _FPU_GETCW(cw) __asm__ ("fmov fpcr,%0" : "=r" (cw)) - -/* Default control word set at startup. */ -extern fpu_control_t __fpu_control; - -#endif /* fpu_control.h */ diff --git a/ports/sysdeps/am33/fpu/fraiseexcpt.c b/ports/sysdeps/am33/fpu/fraiseexcpt.c deleted file mode 100644 index b86a51eb8e..0000000000 --- a/ports/sysdeps/am33/fpu/fraiseexcpt.c +++ /dev/null @@ -1,78 +0,0 @@ -/* Raise given exceptions. - Copyright (C) 2000-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the M68K port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <float.h> -#include <math.h> -#include <shlib-compat.h> - -int -__feraiseexcept (int excepts) -{ - /* Raise exceptions represented by EXCEPTS. But we must raise only one - signal at a time. It is important that if the overflow/underflow - exception and the divide by zero exception are given at the same - time, the overflow/underflow exception follows the divide by zero - exception. */ - - /* First: invalid exception. */ - if (excepts & FE_INVALID) - { - /* One example of an invalid operation is 0 * Infinity. */ - float x = HUGE_VALF, y = 0.0f; - __asm__ __volatile__ ("fmul %1,%0" : "+f" (x) : "f" (y)); - } - - /* Next: division by zero. */ - if (excepts & FE_DIVBYZERO) - { - float x = 1.0f, y = 0.0f; - __asm__ __volatile__ ("fdiv %1,%0" : "+f" (x) : "f" (y)); - } - - /* Next: overflow. */ - if (excepts & FE_OVERFLOW) - { - float x = FLT_MAX; - - __asm__ __volatile__ ("fmul %0,%0" : "+f" (x)); - } - - /* Next: underflow. */ - if (excepts & FE_UNDERFLOW) - { - float x = -FLT_MIN; - - __asm__ __volatile__ ("fmul %0,%0" : "+f" (x)); - } - - /* Last: inexact. */ - if (excepts & FE_INEXACT) - { - float x = 1.0f, y = 3.0f; - __asm__ __volatile__ ("fdiv %1,%0" : "=f" (x) : "f" (y)); - } - - /* Success. */ - return 0; -} - -libm_hidden_ver (__feraiseexcept, feraiseexcept) -versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2); diff --git a/ports/sysdeps/am33/fpu/fsetexcptflg.c b/ports/sysdeps/am33/fpu/fsetexcptflg.c deleted file mode 100644 index 7b7ab84082..0000000000 --- a/ports/sysdeps/am33/fpu/fsetexcptflg.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Set floating-point environment exception handling. - Copyright (C) 1998-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fpu_control.h> -#include <shlib-compat.h> - -int -__fesetexceptflag (const fexcept_t *flagp, int excepts) -{ - fpu_control_t cw, temp; - - /* Get the current exceptions. */ - _FPU_GETCW (cw); - - /* Make sure the flags we want restored are legal. */ - excepts &= FE_ALL_EXCEPT; - temp = *flagp & excepts; - - /* If EF bits are clear and the user requests them to be set, - we have to fail, because there's no way to do it. */ - if (~(cw & excepts) & temp) - return -1; - - /* We clear EF bits by storing a 1 in them, so flip the - FE_ALL_EXCEPT bits. */ - temp = (~temp & FE_ALL_EXCEPT); - - /* Now clear the bits called for, and copy them in from flagp. Note that - we ignore all non-flag bits from *flagp, so they don't matter. */ - cw = (cw & ~FE_ALL_EXCEPT) | temp; - - _FPU_SETFCW (cw); - - /* Success. */ - return 0; -} - -versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2); diff --git a/ports/sysdeps/am33/fpu/ftestexcept.c b/ports/sysdeps/am33/fpu/ftestexcept.c deleted file mode 100644 index fc43de5a99..0000000000 --- a/ports/sysdeps/am33/fpu/ftestexcept.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Test exception in current environment. - Copyright (C) 1998-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - based on corresponding file in the MIPS port. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <fenv.h> -#include <fpu_control.h> - -int -fetestexcept (int excepts) -{ - int cw; - - /* Get current control word. */ - _FPU_GETCW (cw); - - return cw & excepts & FE_ALL_EXCEPT; -} diff --git a/ports/sysdeps/am33/jmpbuf-offsets.h b/ports/sysdeps/am33/jmpbuf-offsets.h deleted file mode 100644 index cccfdb32aa..0000000000 --- a/ports/sysdeps/am33/jmpbuf-offsets.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Private macros for accessing __jmp_buf contents. AM33 version. - Copyright (C) 2006-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#define __JMP_BUF_SP 20 diff --git a/ports/sysdeps/am33/jmpbuf-unwind.h b/ports/sysdeps/am33/jmpbuf-unwind.h deleted file mode 100644 index 0d28bf6f77..0000000000 --- a/ports/sysdeps/am33/jmpbuf-unwind.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Examine __jmp_buf for unwinding frames. AM33 version. - Copyright (C) 2006-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <setjmp.h> -#include <jmpbuf-offsets.h> - -/* Test if longjmp to JMPBUF would unwind the frame - containing a local variable at ADDRESS. */ -#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \ - ((void *) (address) < (void *) demangle (jmpbuf[__JMP_BUF_SP])) diff --git a/ports/sysdeps/am33/linuxthreads/pspinlock.c b/ports/sysdeps/am33/linuxthreads/pspinlock.c deleted file mode 100644 index 8113907a7a..0000000000 --- a/ports/sysdeps/am33/linuxthreads/pspinlock.c +++ /dev/null @@ -1,73 +0,0 @@ -/* POSIX spinlock implementation. AM33 version. - Copyright 2001-2014 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 Library General Public License as - published by the Free Software Foundation; either version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <errno.h> -#include <pthread.h> -#include "internals.h" - -int -__pthread_spin_lock (pthread_spinlock_t *lock) -{ - __asm__ __volatile__("1: bset %1, (%0); beq 1b" - : : "a" (lock), "d" (1) : "memory"); - return 0; -} -weak_alias (__pthread_spin_lock, pthread_spin_lock) - - -int -__pthread_spin_trylock (pthread_spinlock_t *lock) -{ - int oldval = 1; - - __asm__ __volatile__ ("bset %0, (%1); beq 1f; clr %0; 1:" : - "+d" (oldval) : "a" (lock) : "memory"); - - return oldval ? EBUSY : 0; -} -weak_alias (__pthread_spin_trylock, pthread_spin_trylock) - - -int -__pthread_spin_unlock (pthread_spinlock_t *lock) -{ - *lock = 0; - return 0; -} -weak_alias (__pthread_spin_unlock, pthread_spin_unlock) - - -int -__pthread_spin_init (pthread_spinlock_t *lock, int pshared) -{ - /* We can ignore the `pshared' parameter. Since we are busy-waiting - all processes which can access the memory location `lock' points - to can use the spinlock. */ - *lock = 0; - return 0; -} -weak_alias (__pthread_spin_init, pthread_spin_init) - - -int -__pthread_spin_destroy (pthread_spinlock_t *lock) -{ - /* Nothing to do. */ - return 0; -} -weak_alias (__pthread_spin_destroy, pthread_spin_destroy) diff --git a/ports/sysdeps/am33/linuxthreads/pt-machine.h b/ports/sysdeps/am33/linuxthreads/pt-machine.h deleted file mode 100644 index 9e11746fe8..0000000000 --- a/ports/sysdeps/am33/linuxthreads/pt-machine.h +++ /dev/null @@ -1,66 +0,0 @@ -/* Machine-dependent pthreads configuration and inline functions. - am33 version. - Copyright (C) 1996-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com> - Based on ../i386/pt-machine.h. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#ifndef _PT_MACHINE_H -#define _PT_MACHINE_H 1 - -#ifndef __ASSEMBLER__ -#ifndef PT_EI -# define PT_EI extern inline -#endif - -/* Get some notion of the current stack. Need not be exactly the top - of the stack, just something somewhere in the current frame. */ -#define CURRENT_STACK_FRAME __builtin_frame_address (0) - -/* Spinlock implementation; required. */ -PT_EI long int -testandset (int *spinlock) -{ - long int ret = 1; - - /* This won't test&set the entire int, only the least significant - byte. I hope this doesn't matter, since we can't do better. */ - __asm__ __volatile__ ("bset %0, %1; bne 1f; clr %0; 1:" : - "+d" (ret), "+m" (*(volatile int *)spinlock)); - - return ret; -} - - -PT_EI int -get_eflags (void) -{ - int res; - __asm__ __volatile__ ("mov psw,%0" : "=d" (res)); - return res; -} - - -PT_EI void -set_eflags (int newflags) -{ - __asm__ __volatile__ ("mov %0,psw" : : "d" (newflags) : "cc"); -} - -#endif /* __ASSEMBLER__ */ - -#endif /* pt-machine.h */ diff --git a/ports/sysdeps/am33/memusage.h b/ports/sysdeps/am33/memusage.h deleted file mode 100644 index 236743d6a3..0000000000 --- a/ports/sysdeps/am33/memusage.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2000-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#define GETSP() ({ uintptr_t stack_ptr; \ - asm ("mov sp,%0" : "=a" (stack_ptr)); \ - stack_ptr; }) - -#include <sysdeps/generic/memusage.h> diff --git a/ports/sysdeps/am33/preconfigure b/ports/sysdeps/am33/preconfigure deleted file mode 100644 index 9495465389..0000000000 --- a/ports/sysdeps/am33/preconfigure +++ /dev/null @@ -1,5 +0,0 @@ -case "$machine" in -am33*) - base_machine=am33 machine=am33 - ;; -esac diff --git a/ports/sysdeps/am33/setjmp.S b/ports/sysdeps/am33/setjmp.S deleted file mode 100644 index d03b0c7278..0000000000 --- a/ports/sysdeps/am33/setjmp.S +++ /dev/null @@ -1,79 +0,0 @@ -/* setjmp for am33. - Copyright (C) 2001-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <sysdep.h> -#define _ASM -#define _SETJMP_H -#include <bits/setjmp.h> -#include <asm-syntax.h> - - -ENTRY (__sigsetjmp) -.Lsigsetjmp: - /* Save registers. */ - mov d0,a0 - mov d2,(0,a0) - mov d3,(4,a0) - mov mdr,d0 - mov d0,(8,a0) - /* Restore d0 for __sigjmp_save. */ - mov a0,d0 - mov a2,(12,a0) - mov a3,(16,a0) - mov sp,a1 - mov a1,(20,a0) - add 24,a0 - mov r4,(a0+) - mov r5,(a0+) - mov r6,(a0+) - mov r7,(a0+) -#ifdef __AM33_2__ - fmov fs4,(a0+) - fmov fs5,(a0+) - fmov fs6,(a0+) - fmov fs7,(a0+) - fmov fs8,(a0+) - fmov fs9,(a0+) - fmov fs10,(a0+) - fmov fs11,(a0+) - fmov fs12,(a0+) - fmov fs13,(a0+) - fmov fs14,(a0+) - fmov fs15,(a0+) - fmov fs16,(a0+) - fmov fs17,(a0+) - fmov fs18,(a0+) - fmov fs19,(a0+) -#endif - /* Make a tail call to __sigjmp_save; it takes the same args. */ - jmp __sigjmp_save -END (__sigsetjmp) - -/* BSD `_setjmp' entry point to `sigsetjmp (..., 1)'. */ -ENTRY (setjmp) - /* Tail-call setsetjmp with savesigs==1. */ - mov 1,d1 - bra .Lsigsetjmp -END (setjmp) - -/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. */ -ENTRY (_setjmp) - /* Tail-call setsetjmp with savesigs==0. */ - clr d1 - bra .Lsigsetjmp -END (_setjmp) diff --git a/ports/sysdeps/am33/shlib-versions b/ports/sysdeps/am33/shlib-versions deleted file mode 100644 index ad6ded9dc4..0000000000 --- a/ports/sysdeps/am33/shlib-versions +++ /dev/null @@ -1 +0,0 @@ -am33.*-.*-linux.* DEFAULT GLIBC_2.2.5 diff --git a/ports/sysdeps/am33/stackinfo.h b/ports/sysdeps/am33/stackinfo.h deleted file mode 100644 index 50079fd5f0..0000000000 --- a/ports/sysdeps/am33/stackinfo.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright 2001-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -/* This file contains a bit of information about the stack allocation - of the processor. */ - -#ifndef _STACKINFO_H -#define _STACKINFO_H 1 - -/* On am33 the stack grows down. */ -#define _STACK_GROWS_DOWN 1 - -#endif /* stackinfo.h */ diff --git a/ports/sysdeps/am33/sys/ucontext.h b/ports/sysdeps/am33/sys/ucontext.h deleted file mode 100644 index bc2af63a81..0000000000 --- a/ports/sysdeps/am33/sys/ucontext.h +++ /dev/null @@ -1,122 +0,0 @@ -/* Copyright 1997-2014 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 Library General Public License as - published by the Free Software Foundation; either version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -/* AM33/2.0 context switching support. */ - -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 - -#include <features.h> -#include <signal.h> - -/* Type for general register. */ -typedef int greg_t; - -/* Number of general registers. */ -#define NGREG 28 - -/* Container for all general registers. */ -typedef greg_t gregset_t[NGREG]; - -/* Number of each register is the `gregset_t' array. */ -enum -{ - REG_D0 = 0, -#define REG_D0 REG_D0 - REG_D1, -#define REG_D1 REG_D1 - REG_D2, -#define REG_D2 REG_D2 - REG_D3, -#define REG_D3 REG_D3 - REG_A0, -#define REG_A0 REG_A0 - REG_A1, -#define REG_A1 REG_A1 - REG_A2, -#define REG_A2 REG_A2 - REG_A3, -#define REG_A3 REG_A3 - REG_E0, -#define REG_E0 REG_E0 - REG_E1, -#define REG_E1 REG_E1 - REG_E2, -#define REG_E2 REG_E2 - REG_E3, -#define REG_E3 REG_E3 - REG_E4, -#define REG_E4 REG_E4 - REG_E5, -#define REG_E5 REG_E5 - REG_E6, -#define REG_E6 REG_E6 - REG_E7, -#define REG_E7 REG_E7 - REG_LAR, -#define REG_LAR REG_LAR - REG_LIR, -#define REG_LIR REG_LIR - REG_MDR, -#define REG_MDR REG_MDR - REG_MCVF, -#define REG_MCVF REG_MCVF - REG_MCRL, -#define REG_MCRL REG_MCRL - REG_MCRH, -#define REG_MCRH REG_MCRH - REG_MDRQ, -#define REG_MDRQ REG_MDRQ - REG_SP, -#define REG_SP REG_SP - REG_EPSW, -#define REG_EPSW REG_EPSW - REG_PC, -#define REG_PC REG_PC -}; - -typedef int freg_t; - -/* Structure to describe FPU registers. */ -typedef struct { - union { - double fp_dregs[16]; - float fp_fregs[32]; - freg_t fp_regs[32]; - } regs; - freg_t fpcr; -} fpregset_t; - -/* Context to describe whole processor state. */ -typedef struct - { - gregset_t gregs; - fpregset_t fpregs; - } mcontext_t; - -/* Userlevel context. */ -typedef struct ucontext - { - unsigned long int uc_flags; - struct ucontext *uc_link; - __sigset_t uc_sigmask; - stack_t uc_stack; - mcontext_t uc_mcontext; - long int uc_filler[5]; - } ucontext_t; - -#endif /* sys/ucontext.h */ diff --git a/ports/sysdeps/am33/sysdep.h b/ports/sysdeps/am33/sysdep.h deleted file mode 100644 index 70303e3277..0000000000 --- a/ports/sysdeps/am33/sysdep.h +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright 2001-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Alexandre Oliva <aoliva@redhat.com>. - Based on ../i386/sysdep.h. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <sysdeps/generic/sysdep.h> - -#ifdef __ASSEMBLER__ - -/* Syntactic details of assembler. */ - -#ifdef HAVE_ELF -/* For ELF we need the `.type' directive to make shared libs work right. */ -#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg; -#define ASM_SIZE_DIRECTIVE(name) .size name,.-name; - -/* In ELF C symbols are asm symbols. */ -#undef NO_UNDERSCORES -#define NO_UNDERSCORES -#else -#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */ -#define ASM_SIZE_DIRECTIVE(name) /* Nothing is specified. */ -#endif - -/* Define an entry point visible from C. */ -#define ENTRY(name) \ - ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \ - ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \ - C_LABEL(name) \ - CALL_MCOUNT - -#undef END -#define END(name) \ - ASM_SIZE_DIRECTIVE(name) \ - -/* If compiled for profiling, call `mcount' at the start of each function. */ -#ifdef PROF -/* The mcount code relies on a normal frame pointer being on the stack - to locate our caller, so push one just for its benefit. */ -#define CALL_MCOUNT \ - movm [a3],(sp); mov sp,a3; add -12,sp; \ - call JUMPTARGET(mcount),[],0; add 12,sp; movm (sp),[a3]; -#else -#define CALL_MCOUNT /* Do nothing. */ -#endif - -#ifdef NO_UNDERSCORES -/* 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 - -#undef JUMPTARGET -#ifdef PIC -#define JUMPTARGET(name) name##@PLT -#else -#define JUMPTARGET(name) name -#endif - -/* Local label name for asm code. */ -#ifndef L -#define L(name) name -#endif - -#endif /* __ASSEMBLER__ */ diff --git a/ports/sysdeps/am33/tininess.h b/ports/sysdeps/am33/tininess.h deleted file mode 100644 index 1db37790f8..0000000000 --- a/ports/sysdeps/am33/tininess.h +++ /dev/null @@ -1 +0,0 @@ -#define TININESS_AFTER_ROUNDING 1 |