diff --git a/MAINTAINERS b/MAINTAINERS deleted file mode 100644 index a76dc241f..000000000 --- a/MAINTAINERS +++ /dev/null @@ -1,6 +0,0 @@ - -Bionic support for SuperH -------------------------- -Bionic support for SuperH architecture is written by -Shin-ichiro KAWASAKI -and Contributed to Android by Hitachi, Ltd. and Renesas Solutions Corp. diff --git a/libc/arch-sh/syscalls/personality.S b/libc/arch-sh/syscalls/personality.S deleted file mode 100644 index efc2ea380..000000000 --- a/libc/arch-sh/syscalls/personality.S +++ /dev/null @@ -1,32 +0,0 @@ -/* autogenerated by gensyscalls.py */ -#include - - .text - .type personality, @function - .globl personality - .align 4 - -personality: - - /* invoke trap */ - mov.l 0f, r3 /* trap num */ - trapa #(1 + 0x10) - - /* check return value */ - cmp/pz r0 - bt __NR_personality_end - - /* keep error number */ - sts.l pr, @-r15 - mov.l 1f, r1 - jsr @r1 - mov r0, r4 - lds.l @r15+, pr - -__NR_personality_end: - rts - nop - - .align 2 -0: .long __NR_personality -1: .long __set_syscall_errno diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py index 9a8a8c761..21d2f1d1a 100755 --- a/libc/tools/gensyscalls.py +++ b/libc/tools/gensyscalls.py @@ -364,23 +364,6 @@ class State: "idname" : idname } return mips_call % t - def superh_genstub(self, fname, flags, idname): - numargs = int(flags) - t = { "fname" : fname, - "idname" : idname, - "numargs" : numargs } - superh_call = superh_header - if flags: - if numargs == 5: - superh_call += superh_5args_header - if numargs == 6: - superh_call += superh_6args_header - if numargs == 7: - superh_call += superh_7args_header - superh_call += superh_call_default - return superh_call % t - - def process_file(self,input): parser = SysCallsTxtParser() parser.parse_file(input) diff --git a/libdl/Android.mk b/libdl/Android.mk index 9a513603a..fb01ec27f 100644 --- a/libdl/Android.mk +++ b/libdl/Android.mk @@ -34,21 +34,6 @@ LOCAL_MODULE:= libdl LOCAL_ALLOW_UNDEFINED_SYMBOLS := true LOCAL_SYSTEM_SHARED_LIBRARIES := -ifeq ($(TARGET_ARCH),sh) -# for SuperH, additional code is necessary to handle .ctors section. -GEN_SOBEGIN := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/sobegin.o -$(GEN_SOBEGIN): $(LOCAL_PATH)/arch-sh/sobegin.S - @mkdir -p $(dir $@) - $(TARGET_CC) -o $@ -c $< - -GEN_SOEND := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/soend.o -$(GEN_SOEND): $(LOCAL_PATH)/arch-sh/soend.S - @mkdir -p $(dir $@) - $(TARGET_CC) -o $@ -c $< - -LOCAL_ADDITIONAL_DEPENDENCIES := $(GEN_SOBEGIN) $(GEN_SOEND) -endif - include $(BUILD_SHARED_LIBRARY) BUILD_DLTEST:=0 diff --git a/libdl/arch-sh/sobegin.S b/libdl/arch-sh/sobegin.S deleted file mode 100644 index 976b1a6b3..000000000 --- a/libdl/arch-sh/sobegin.S +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Project - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - .text - .align 4 - .type _init,#function - .globl _init - -# The toolchain for SH-Linux does not produce INIT_ARRAY information which -# bionic linker relies on. Instead of it, The toolchain for SH-Linux produces -# INIT information when it find the function whose name is '_init'. -# -_init: - sts.l pr, @-r15 - mov.l r8, @-r15 - mov.l 0f, r8 /* first entry is invalid */ -.L_loop: - add #4, r8 - mov.l @r8, r0 - cmp/eq #0, r0 /* Zero terimnated. See 'soend.so'. */ - bt .L_end - jsr @r0 /* invoke a constructor */ - nop - bra .L_loop - nop -.L_end: - mov.l @r15+, r8 - lds.l @r15+, pr - - rts - nop - - .balign 4 -0: .long __CTOR_LIST__ - -# the .ctors section contains a list of pointers to "constructor" -# functions that need to be called in order during C library initialization, -# just before the program is being run. This is a C++ requirement -# -# the last entry shall be 0, and is defined in crtend.S -# - .section .ctors, "aw" - .globl __CTOR_LIST__ -__CTOR_LIST__: - .long -1 - diff --git a/libdl/arch-sh/soend.S b/libdl/arch-sh/soend.S deleted file mode 100644 index 7fa98a4a2..000000000 --- a/libdl/arch-sh/soend.S +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Project - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - - .section .ctors, "aw" - .long 0 - diff --git a/libm/sh/_fpmath.h b/libm/sh/_fpmath.h deleted file mode 100644 index f75ec7b67..000000000 --- a/libm/sh/_fpmath.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2009 Android Open Source Project, All rights reserved. - * Derived from "bionic/libm/arm/_fpmath.h" - * Copyright (c) 2002, 2003 David Schultz - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * Assumes that 'long double' on SH-linux is just an alias for 'double'. - */ -union IEEEl2bits { - long double e; - struct { -#if __BYTE_ORDER == __LITTLE_ENDIAN - unsigned int manl :32; - unsigned int manh :20; - unsigned int exp :11; - unsigned int sign :1; -#elif __BYTE_ORDER == __BIG_ENDIAN - unsigned int sign :1; - unsigned int exp :11; - unsigned int manh :20; - unsigned int manl :32; -#endif - } bits; -}; - -/* - * LDBL_NBIT is a mask indicating the position of the integer - * bit in a long double. But SH4 does not support it. - */ -#define LDBL_NBIT 0 -#define mask_nbit_l(u) ((void)0) - -#define LDBL_MANH_SIZE 20 -#define LDBL_MANL_SIZE 32 diff --git a/libm/sh/fenv.c b/libm/sh/fenv.c deleted file mode 100644 index ca8f47684..000000000 --- a/libm/sh/fenv.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2009 Android Open Source Project, All rights reserved. - * Derived from "bionic/libm/arm/fenv.c" - * Copyright (c) 2004 David Schultz - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -long __fpscr_values[2] = { 0L, 0x80000L }; diff --git a/libm/sh/fenv.h b/libm/sh/fenv.h deleted file mode 100644 index e872f4736..000000000 --- a/libm/sh/fenv.h +++ /dev/null @@ -1,240 +0,0 @@ -/* - * Copyright (C) 2009 Android Open Source Project, All rights reserved. - * Derived from "bionic/libm/arm/fenv.h" - * Copyright (c) 2004-2005 David Schultz - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef _FENV_H_ -#define _FENV_H_ - -#include -#include - -typedef uint32_t fenv_t; -typedef uint32_t fexcept_t; - -/* Exception flags */ -#define FE_INVALID 0x0010 -#define FE_DIVBYZERO 0x0008 -#define FE_OVERFLOW 0x0004 -#define FE_UNDERFLOW 0x0002 -#define FE_INEXACT 0x0001 -#define FE_ALL_EXCEPT (FE_DIVBYZERO | FE_INEXACT | \ - FE_INVALID | FE_OVERFLOW | FE_UNDERFLOW) - -/* Rounding modes */ -#define FE_TONEAREST 0x0000 -#define FE_TOWARDZERO 0x0001 -#define FE_UPWARD 0x0002 /* not supporetd */ -#define FE_DOWNWARD 0x0003 /* not supporetd */ -#define _ROUND_MASK (FE_TONEAREST | FE_DOWNWARD | \ - FE_UPWARD | FE_TOWARDZERO) - -/* bit shift for FPSCR mapping */ -#define _FPUE_CAUSE_SHIFT 12 -#define _FPUE_ENABLE_SHIFT 17 -#define _FPUE_FLAG_SHIFT 2 - -/* bit shifters */ -#define _FPUE_CAUSE(_EXCS) ((_EXCS) << _FPUE_CAUSE_SHIFT) -#define _FPUE_ENABLE(_EXCS) ((_EXCS) << _FPUE_ENABLE_SHIFT) -#define _FPUE_FLAG(_EXCS) ((_EXCS) << _FPUE_FLAG_SHIFT) - -#define _GET_FPUE_CAUSE(_FPUE) (((_FPUE) >> _FPUE_CAUSE_SHIFT) & FE_ALL_EXCEPT) -#define _GET_FPUE_ENABLE(_FPUE) (((_FPUE) >> _FPUE_ENABLE_SHIFT)& FE_ALL_EXCEPT) -#define _GET_FPUE_FLAG(_FPUE) (((_FPUE) >> _FPUE_FLAG_SHIFT) & FE_ALL_EXCEPT) - - -/* FPSCR register accessors */ -#ifdef __SH4_NOFPU__ -#define __read_fpscr(_ptr) -#define __write_fpscr(_val) -#else -#define __read_fpscr(_ptr) __asm __volatile("sts fpscr, %0" : "=r" (*(_ptr))) -#define __write_fpscr(_val) __asm __volatile("lds %0, fpscr" : : "r" (_val)) -#endif - - -/* functions for libm */ -static __inline int -feclearexcept(int __excepts) -{ - uint32_t __fpscr; - - __read_fpscr(&__fpscr); - __fpscr &= ~_FPUE_FLAG(__excepts); - __write_fpscr(__fpscr); - return (0); -} - -static __inline int -fegetexceptflag(fexcept_t *__flagp, int __excepts) -{ - uint32_t __fpscr; - - __read_fpscr(&__fpscr); - *__flagp = _GET_FPUE_FLAG(__fpscr) & __excepts; - return (0); -} - - -static __inline int -fesetexceptflag(const fexcept_t *__flagp, int __excepts) -{ - uint32_t __fpscr; - - __read_fpscr(&__fpscr); - __fpscr &= ~_FPUE_FLAG(__excepts); - __fpscr |= ~_FPUE_FLAG(*__flagp & __excepts); - __write_fpscr(__fpscr); - return (0); -} - - -static __inline int -feraiseexcept(int __excepts) -{ - fexcept_t __ex = __excepts; - - fesetexceptflag(&__ex, __excepts); /* XXX */ - return (0); -} - - -static __inline int -fetestexcept(int __excepts) -{ - fexcept_t __ex; - - fegetexceptflag(&__ex, __excepts); - return (__ex); -} - - -static __inline int -fegetround(void) -{ - uint32_t __fpscr = 0; - - __read_fpscr(&__fpscr); - return (__fpscr & _ROUND_MASK); -} - -static __inline int -fesetround(int __round) -{ - uint32_t __fpscr = 0; - - if (__round == FE_UPWARD || __round == FE_DOWNWARD) { - fprintf(stderr, "libm superh : " - "upward/downward rounding not supporetd.\n"); - return -1; - } - - __read_fpscr(&__fpscr); - __fpscr &= ~_ROUND_MASK; - __fpscr |= (__round & _ROUND_MASK); - __write_fpscr(__fpscr); - return (0); -} - -static __inline int -fegetenv(fenv_t *__envp) -{ - __read_fpscr(__envp); - return (0); -} - -static __inline int -feholdexcept(fenv_t *__envp) -{ - uint32_t __fpscr; - - __read_fpscr(&__fpscr); - *__envp = __fpscr; - __fpscr &= ~_FPUE_FLAG(FE_ALL_EXCEPT); - __write_fpscr(__fpscr); - return (0); -} - - -static __inline int -fesetenv(const fenv_t *__envp) -{ - __write_fpscr(*__envp); - return (0); -} - - -static __inline int -feupdateenv(const fenv_t *__envp) -{ - uint32_t __fpscr; - - __read_fpscr(&__fpscr); - __write_fpscr(*__envp); - feraiseexcept(_GET_FPUE_FLAG(__fpscr)); - return (0); -} - -#if __BSD_VISIBLE - -static __inline int -feenableexcept(int __mask) -{ - uint32_t __old_fpscr, __new_fpscr; - - __read_fpscr(&__old_fpscr); - __new_fpscr = __old_fpscr | _FPUE_ENABLE(__mask & FE_ALL_EXCEPT); - __write_fpscr(__new_fpscr); - return (_GET_FPUE_ENABLE(__old_fpscr)); -} - -static __inline int -fedisableexcept(int __mask) -{ - uint32_t __old_fpscr, __new_fpscr; - - __read_fpscr(&__old_fpscr); - __new_fpscr = __old_fpscr & ~(_FPUE_ENABLE(__mask & FE_ALL_EXCEPT)); - __write_fpscr(__new_fpscr); - return (_GET_FPUE_ENABLE(__old_fpscr)); -} - -static __inline int -fegetexcept(void) -{ - uint32_t __fpscr; - - __read_fpscr(&__fpscr); - return (_GET_FPUE_ENABLE(__fpscr)); -} - -#endif /* __BSD_VISIBLE */ - - -#endif /* _FENV_H_ */ -