From 7007c661ad737b3c8fd7855791cd52bcac6d7a0b Mon Sep 17 00:00:00 2001 From: Kaz Kojima Date: Thu, 23 Jan 2014 14:22:58 +0900 Subject: Adjust SH specific fpu_control.h and ucontext.h files. --- ChangeLog | 12 +++ sysdeps/sh/fpu_control.h | 76 +++++++++++++++ sysdeps/sh/sh4/fpu/fpu_control.h | 62 ------------- sysdeps/unix/sysv/linux/sh/sh3/sys/ucontext.h | 101 -------------------- sysdeps/unix/sysv/linux/sh/sh4/sys/ucontext.h | 114 ----------------------- sysdeps/unix/sysv/linux/sh/sys/ucontext.h | 129 ++++++++++++++++++++++++++ 6 files changed, 217 insertions(+), 277 deletions(-) create mode 100644 sysdeps/sh/fpu_control.h delete mode 100644 sysdeps/sh/sh4/fpu/fpu_control.h delete mode 100644 sysdeps/unix/sysv/linux/sh/sh3/sys/ucontext.h delete mode 100644 sysdeps/unix/sysv/linux/sh/sh4/sys/ucontext.h create mode 100644 sysdeps/unix/sysv/linux/sh/sys/ucontext.h diff --git a/ChangeLog b/ChangeLog index 2730a81940..78e6946e22 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2014-01-23 Kaz Kojima + + * sysdeps/sh/fpu_control.h: New file. + * sysdeps/sh/sh4/fpu/fpu_control.h: Remove. + * sysdeps/unix/sysv/linux/sh/sys/ucontext.h: New file. + * sysdeps/unix/sysv/linux/sh/sh3/sys/ucontext.h: Remove. + * sysdeps/unix/sysv/linux/sh/sh3/sys: Remove directory. + * sysdeps/unix/sysv/linux/sh/sh4/sys/ucontext.h: Remove. + * sysdeps/unix/sysv/linux/sh/sh4/sys: Remove directory. + * sysdeps/sh/sys/ucontext.h: Remove. + * sysdeps/sh/sys: Remove directory. + 2014-01-22 Andreas Krebbel * sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Merge into diff --git a/sysdeps/sh/fpu_control.h b/sysdeps/sh/fpu_control.h new file mode 100644 index 0000000000..5d2604bafb --- /dev/null +++ b/sysdeps/sh/fpu_control.h @@ -0,0 +1,76 @@ +/* FPU control word definitions. SH version. + Copyright (C) 1999-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 + . */ + +#ifndef _FPU_CONTROL_H +#define _FPU_CONTROL_H + +#if !defined(__SH_FPU_ANY__) + +#define _FPU_RESERVED 0xffffffff +#define _FPU_DEFAULT 0x00000000 +typedef unsigned int fpu_control_t; +#define _FPU_GETCW(cw) (cw) = 0 +#define _FPU_SETCW(cw) (void) (cw) +extern fpu_control_t __fpu_control; + +#else + +#include + +/* masking of interrupts */ +#define _FPU_MASK_VM 0x0800 /* Invalid operation */ +#define _FPU_MASK_ZM 0x0400 /* Division by zero */ +#define _FPU_MASK_OM 0x0200 /* Overflow */ +#define _FPU_MASK_UM 0x0100 /* Underflow */ +#define _FPU_MASK_IM 0x0080 /* Inexact operation */ + +/* rounding control */ +#define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */ +#define _FPU_RC_ZERO 0x1 + +#define _FPU_RESERVED 0xffc00000 /* These bits are reserved. */ + +/* The fdlibm code requires strict IEEE double precision arithmetic, + and no interrupts for exceptions, rounding to nearest. */ +#define _FPU_DEFAULT 0x00080000 /* Default value. */ +#define _FPU_IEEE 0x00080f80 /* Default + exceptions enabled. */ + +/* Type of the control word. */ +typedef unsigned int fpu_control_t; + +/* Macros for accessing the hardware control word. */ +#define _FPU_GETCW(cw) __asm__ ("sts fpscr,%0" : "=r" (cw)) + +#if defined __GNUC__ +__BEGIN_DECLS + +/* GCC provides this function. */ +extern void __set_fpscr (unsigned long); +#define _FPU_SETCW(cw) __set_fpscr ((cw)) +#else +#define _FPU_SETCW(cw) __asm__ ("lds %0,fpscr" : : "r" (cw)) +#endif + +/* Default control word set at startup. */ +extern fpu_control_t __fpu_control; + +__END_DECLS + +#endif /* __SH_FPU_ANY__ */ + +#endif /* _FPU_CONTROL_H */ diff --git a/sysdeps/sh/sh4/fpu/fpu_control.h b/sysdeps/sh/sh4/fpu/fpu_control.h deleted file mode 100644 index ab1e97b17b..0000000000 --- a/sysdeps/sh/sh4/fpu/fpu_control.h +++ /dev/null @@ -1,62 +0,0 @@ -/* FPU control word definitions. SH version. - Copyright (C) 1999-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 - . */ - -#ifndef _FPU_CONTROL_H -#define _FPU_CONTROL_H - -#include - -/* masking of interrupts */ -#define _FPU_MASK_VM 0x0800 /* Invalid operation */ -#define _FPU_MASK_ZM 0x0400 /* Division by zero */ -#define _FPU_MASK_OM 0x0200 /* Overflow */ -#define _FPU_MASK_UM 0x0100 /* Underflow */ -#define _FPU_MASK_IM 0x0080 /* Inexact operation */ - -/* rounding control */ -#define _FPU_RC_NEAREST 0x0 /* RECOMMENDED */ -#define _FPU_RC_ZERO 0x1 - -#define _FPU_RESERVED 0xffc00000 /* These bits are reserved. */ - -/* The fdlibm code requires strict IEEE double precision arithmetic, - and no interrupts for exceptions, rounding to nearest. */ -#define _FPU_DEFAULT 0x00080000 /* Default value. */ -#define _FPU_IEEE 0x00080f80 /* Default + exceptions enabled. */ - -/* Type of the control word. */ -typedef unsigned int fpu_control_t; - -/* Macros for accessing the hardware control word. */ -#define _FPU_GETCW(cw) __asm__ ("sts fpscr,%0" : "=r" (cw)) - -#if defined __GNUC__ -__BEGIN_DECLS - -/* GCC provides this function. */ -extern void __set_fpscr (unsigned long); -#define _FPU_SETCW(cw) __set_fpscr ((cw)) -#else -#define _FPU_SETCW(cw) __asm__ ("lds %0,fpscr" : : "r" (cw)) -#endif - -/* Default control word set at startup. */ -extern fpu_control_t __fpu_control; - -__END_DECLS -#endif /* _FPU_CONTROL_H */ diff --git a/sysdeps/unix/sysv/linux/sh/sh3/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sh3/sys/ucontext.h deleted file mode 100644 index fe06b074ee..0000000000 --- a/sysdeps/unix/sysv/linux/sh/sh3/sys/ucontext.h +++ /dev/null @@ -1,101 +0,0 @@ -/* Copyright (C) 1999-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 - . */ - -/* Where is System V/SH ABI? */ - -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 - -#include -#include - -/* We need the signal context definitions even if they are not used - included in . */ -#include - - -typedef int greg_t; - -/* Number of general registers. */ -#define NFPREG 16 - -/* Container for all general registers. */ -typedef greg_t gregset_t[NFPREG]; - -#ifdef __USE_GNU -/* Number of each register is the `gregset_t' array. */ -enum -{ - R0 = 0, -#define R0 R0 - R1 = 1, -#define R1 R1 - R2 = 2, -#define R2 R2 - R3 = 3, -#define R3 R3 - R4 = 4, -#define R4 R4 - R5 = 5, -#define R5 R5 - R6 = 6, -#define R6 R6 - R7 = 7, -#define R7 R7 - R8 = 8, -#define R8 R8 - R9 = 9, -#define R9 R9 - R10 = 10, -#define R10 R10 - R11 = 11, -#define R11 R11 - R12 = 12, -#define R12 R12 - R13 = 13, -#define R13 R13 - R14 = 14, -#define R14 R14 - R15 = 15, -#define R15 R15 -}; -#endif - -/* Context to describe whole processor state. */ -typedef struct - { - unsigned int oldmask; - gregset_t gregs; - unsigned int pc; - unsigned int pr; - unsigned int sr; - unsigned int gbr; - unsigned int mach; - unsigned int macl; - } 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/sh/sh4/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sh4/sys/ucontext.h deleted file mode 100644 index 799b2775ef..0000000000 --- a/sysdeps/unix/sysv/linux/sh/sh4/sys/ucontext.h +++ /dev/null @@ -1,114 +0,0 @@ -/* Copyright (C) 1999-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 - . */ - -/* Where is System V/SH ABI? */ - -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 - -#include -#include - -/* We need the signal context definitions even if they are not used - included in . */ -#include - - -typedef int greg_t; - -/* Number of general registers. */ -#define NFPREG 16 - -/* Container for all general registers. */ -typedef greg_t gregset_t[NFPREG]; - -#ifdef __USE_GNU -/* Number of each register is the `gregset_t' array. */ -enum -{ - R0 = 0, -#define R0 R0 - R1 = 1, -#define R1 R1 - R2 = 2, -#define R2 R2 - R3 = 3, -#define R3 R3 - R4 = 4, -#define R4 R4 - R5 = 5, -#define R5 R5 - R6 = 6, -#define R6 R6 - R7 = 7, -#define R7 R7 - R8 = 8, -#define R8 R8 - R9 = 9, -#define R9 R9 - R10 = 10, -#define R10 R10 - R11 = 11, -#define R11 R11 - R12 = 12, -#define R12 R12 - R13 = 13, -#define R13 R13 - R14 = 14, -#define R14 R14 - R15 = 15, -#define R15 R15 -}; -#endif - -typedef int freg_t; - -/* Number of FPU registers. */ -#define NFPREG 16 - -/* Structure to describe FPU registers. */ -typedef freg_t fpregset_t[NFPREG]; - -/* Context to describe whole processor state. */ -typedef struct - { - unsigned int oldmask; - gregset_t gregs; - unsigned int pc; - unsigned int pr; - unsigned int sr; - unsigned int gbr; - unsigned int mach; - unsigned int macl; - fpregset_t fpregs; - fpregset_t xfpregs; - unsigned int fpscr; - unsigned int fpul; - unsigned int ownedfp; - } 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/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h new file mode 100644 index 0000000000..269d29ae77 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h @@ -0,0 +1,129 @@ +/* Copyright (C) 1999-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 + . */ + +/* Where is System V/SH ABI? */ + +#ifndef _SYS_UCONTEXT_H +#define _SYS_UCONTEXT_H 1 + +#include +#include + +/* We need the signal context definitions even if they are not used + included in . */ +#include + + +typedef int greg_t; + +/* Number of general registers. */ +#define NGPREG 16 + +/* Container for all general registers. */ +typedef greg_t gregset_t[NGPREG]; + +#ifdef __USE_GNU +/* Number of each register is the `gregset_t' array. */ +enum +{ + R0 = 0, +#define R0 R0 + R1 = 1, +#define R1 R1 + R2 = 2, +#define R2 R2 + R3 = 3, +#define R3 R3 + R4 = 4, +#define R4 R4 + R5 = 5, +#define R5 R5 + R6 = 6, +#define R6 R6 + R7 = 7, +#define R7 R7 + R8 = 8, +#define R8 R8 + R9 = 9, +#define R9 R9 + R10 = 10, +#define R10 R10 + R11 = 11, +#define R11 R11 + R12 = 12, +#define R12 R12 + R13 = 13, +#define R13 R13 + R14 = 14, +#define R14 R14 + R15 = 15, +#define R15 R15 +}; +#endif + +#ifdef __SH_FPU_ANY__ +typedef int freg_t; + +/* Number of FPU registers. */ +#define NFPREG 16 + +/* Structure to describe FPU registers. */ +typedef freg_t fpregset_t[NFPREG]; + +/* Context to describe whole processor state. */ +typedef struct + { + unsigned int oldmask; + gregset_t gregs; + unsigned int pc; + unsigned int pr; + unsigned int sr; + unsigned int gbr; + unsigned int mach; + unsigned int macl; + fpregset_t fpregs; + fpregset_t xfpregs; + unsigned int fpscr; + unsigned int fpul; + unsigned int ownedfp; + } mcontext_t; +#else +/* Context to describe whole processor state. */ +typedef struct + { + unsigned int oldmask; + gregset_t gregs; + unsigned int pc; + unsigned int pr; + unsigned int sr; + unsigned int gbr; + unsigned int mach; + unsigned int macl; + } mcontext_t; +#endif /* __SH_FPU_ANY__ */ + +/* 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 */ -- cgit v1.2.3