[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r8304 - in /trunk: libc/ libc/elf/ libc/sysdeps/powerpc/powerpc32/elf/ libc/sysdeps/powerpc/powerpc64/elf/ libc/sysdeps/sh/ ...
- To: commits@xxxxxxxxxx
- Subject: [commits] r8304 - in /trunk: libc/ libc/elf/ libc/sysdeps/powerpc/powerpc32/elf/ libc/sysdeps/powerpc/powerpc64/elf/ libc/sysdeps/sh/ ...
- From: joseph@xxxxxxxxxx
- Date: Thu, 16 Apr 2009 11:55:53 -0000
Author: joseph
Date: Thu Apr 16 04:55:53 2009
New Revision: 8304
Log:
Merge changes between r8289 and r8303 from /fsf/trunk.
Added:
trunk/libc/sysdeps/sh/libc-tls.c
- copied unchanged from r8303, fsf/trunk/libc/sysdeps/sh/libc-tls.c
trunk/libc/sysdeps/x86_64/add_n.S
- copied unchanged from r8303, fsf/trunk/libc/sysdeps/x86_64/add_n.S
trunk/libc/sysdeps/x86_64/addmul_1.S
- copied unchanged from r8303, fsf/trunk/libc/sysdeps/x86_64/addmul_1.S
trunk/libc/sysdeps/x86_64/lshift.S
- copied unchanged from r8303, fsf/trunk/libc/sysdeps/x86_64/lshift.S
trunk/libc/sysdeps/x86_64/mp_clz_tab.c
- copied unchanged from r8303, fsf/trunk/libc/sysdeps/x86_64/mp_clz_tab.c
trunk/libc/sysdeps/x86_64/mul_1.S
- copied unchanged from r8303, fsf/trunk/libc/sysdeps/x86_64/mul_1.S
trunk/libc/sysdeps/x86_64/rshift.S
- copied unchanged from r8303, fsf/trunk/libc/sysdeps/x86_64/rshift.S
trunk/libc/sysdeps/x86_64/sub_n.S
- copied unchanged from r8303, fsf/trunk/libc/sysdeps/x86_64/sub_n.S
trunk/libc/sysdeps/x86_64/submul_1.S
- copied unchanged from r8303, fsf/trunk/libc/sysdeps/x86_64/submul_1.S
Modified:
trunk/libc/ChangeLog
trunk/libc/elf/elf.h
trunk/libc/sysdeps/powerpc/powerpc32/elf/start.S
trunk/libc/sysdeps/powerpc/powerpc64/elf/start.S
trunk/libc/sysdeps/sh/bits/setjmp.h
trunk/libc/sysdeps/sparc/sparc32/elf/start.S
trunk/libc/sysdeps/sparc/sparc64/elf/start.S
trunk/libc/sysdeps/unix/sysv/linux/fallocate.c
trunk/libc/sysdeps/unix/sysv/linux/fallocate64.c
trunk/libc/sysdeps/unix/sysv/linux/getsysstats.c
trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h
trunk/libc/sysdeps/unix/sysv/linux/wordsize-64/fallocate.c
trunk/ports/ChangeLog.mips
trunk/ports/sysdeps/mips/sys/fpregdef.h
Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Thu Apr 16 04:55:53 2009
@@ -1,3 +1,62 @@
+2009-04-15 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/getsysstats.c (next_line): Make sure there
+ are always at least 4 bytes in the returned line.
+
+2009-04-15 Jakub Jelinek <jakub@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Check
+ __libc_use_alloca (8192), if the stack is too small use 512 bytes
+ instead of 8K. Stop searching in /proc/stat after hitting first
+ line not starting with cpu.
+ (next_line): Truncate too long
+ lines at buffer size * 3/4 instead of pretending there were line
+ breaks inside of large lines.
+
+2009-04-14 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * sysdeps/x86_64/mp_clz_tab.c: New file.
+
+2009-03-17 Ryan S. Arnold <rsa@xxxxxxxxxx>
+ Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/fallocate.c: Handle old kernel headers.
+ * sysdeps/unix/sysv/linux/fallocate64.c: Likewise.
+ * sysdeps/unix/sysv/linux/wordsize-64/fallocate.c: Likewise.
+
+2009-03-25 Andrew Stubbs <ams@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/sh/libc-tls.c: New file.
+
+ * sysdeps/sh/bits/setjmp.h (__jmp_buf): Give name to structure type.
+
+2009-04-14 Roland McGrath <roland@xxxxxxxxxx>
+
+ * elf/elf.h: Add various missing ARM constants, to match binutils.
+
+2009-04-14 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ Optimizations from GMP.
+ * sysdeps/x86_64/add_n.S: New file.
+ * sysdeps/x86_64/addmul_1.S: New file.
+ * sysdeps/x86_64/lshift.S: New file.
+ * sysdeps/x86_64/mul_1.S: New file.
+ * sysdeps/x86_64/rshift.S: New file.
+ * sysdeps/x86_64/sub_n.S: New file.
+ * sysdeps/x86_64/submul_1.S: New file.
+
+2009-04-14 Jakub Jelinek <jakub@xxxxxxxxxx>
+
+ * sysdeps/powerpc/powerpc32/elf/start.S: Ensure .data is non-empty.
+ * sysdeps/powerpc/powerpc64/elf/start.S: Likewise.
+ * sysdeps/sparc/sparc32/elf/start.S: Likewise.
+ * sysdeps/sparc/sparc64/elf/start.S: Likewise.
+
+2009-04-14 Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/kernel-features.h: SH also has
+ preadv/pwritev.
+
2009-04-13 Ulrich Drepper <drepper@xxxxxxxxxx>
* sysdeps/x86-64/strrchr.S: New file.
Modified: trunk/libc/elf/elf.h
==============================================================================
--- trunk/libc/elf/elf.h (original)
+++ trunk/libc/elf/elf.h Thu Apr 16 04:55:53 2009
@@ -2205,42 +2205,62 @@
/* ARM specific declarations */
/* Processor specific flags for the ELF header e_flags field. */
-#define EF_ARM_RELEXEC 0x01
-#define EF_ARM_HASENTRY 0x02
-#define EF_ARM_INTERWORK 0x04
-#define EF_ARM_APCS_26 0x08
-#define EF_ARM_APCS_FLOAT 0x10
-#define EF_ARM_PIC 0x20
-#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use */
-#define EF_ARM_NEW_ABI 0x80
-#define EF_ARM_OLD_ABI 0x100
+#define EF_ARM_RELEXEC 0x01
+#define EF_ARM_HASENTRY 0x02
+#define EF_ARM_INTERWORK 0x04
+#define EF_ARM_APCS_26 0x08
+#define EF_ARM_APCS_FLOAT 0x10
+#define EF_ARM_PIC 0x20
+#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use */
+#define EF_ARM_NEW_ABI 0x80
+#define EF_ARM_OLD_ABI 0x100
+#define EF_ARM_SOFT_FLOAT 0x200
+#define EF_ARM_VFP_FLOAT 0x400
+#define EF_ARM_MAVERICK_FLOAT 0x800
+
/* Other constants defined in the ARM ELF spec. version B-01. */
/* NB. These conflict with values defined above. */
#define EF_ARM_SYMSARESORTED 0x04
-#define EF_ARM_DYNSYMSUSESEGIDX 0x08
+#define EF_ARM_DYNSYMSUSESEGIDX 0x08
#define EF_ARM_MAPSYMSFIRST 0x10
#define EF_ARM_EABIMASK 0XFF000000
-#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
-#define EF_ARM_EABI_UNKNOWN 0x00000000
-#define EF_ARM_EABI_VER1 0x01000000
-#define EF_ARM_EABI_VER2 0x02000000
-
-/* Additional symbol types for Thumb */
-#define STT_ARM_TFUNC 0xd
+/* Constants defined in AAELF. */
+#define EF_ARM_BE8 0x00800000
+#define EF_ARM_LE8 0x00400000
+
+#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
+#define EF_ARM_EABI_UNKNOWN 0x00000000
+#define EF_ARM_EABI_VER1 0x01000000
+#define EF_ARM_EABI_VER2 0x02000000
+#define EF_ARM_EABI_VER3 0x03000000
+#define EF_ARM_EABI_VER4 0x04000000
+#define EF_ARM_EABI_VER5 0x05000000
+
+/* Additional symbol types for Thumb. */
+#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */
+#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */
/* ARM-specific values for sh_flags */
-#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */
-#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined
- in the input to a link step */
+#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */
+#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined
+ in the input to a link step. */
/* ARM-specific program header flags */
-#define PF_ARM_SB 0x10000000 /* Segment contains the location
- addressed by the static base */
+#define PF_ARM_SB 0x10000000 /* Segment contains the location
+ addressed by the static base. */
+#define PF_ARM_PI 0x20000000 /* Position-independent segment. */
+#define PF_ARM_ABS 0x40000000 /* Absolute segment. */
/* Processor specific values for the Phdr p_type field. */
-#define PT_ARM_EXIDX 0x70000001 /* .ARM.exidx segment */
+#define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */
+
+/* Processor specific values for the Shdr sh_type field. */
+#define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */
+#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */
+#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */
+
/* ARM relocs. */
Modified: trunk/libc/sysdeps/powerpc/powerpc32/elf/start.S
==============================================================================
--- trunk/libc/sysdeps/powerpc/powerpc32/elf/start.S (original)
+++ trunk/libc/sysdeps/powerpc/powerpc32/elf/start.S Thu Apr 16 04:55:53 2009
@@ -1,5 +1,6 @@
/* Startup code for programs linked with GNU libc.
- Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
+ Copyright (C) 1998,1999,2000,2001,2002,2003,2009
+ 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
@@ -98,4 +99,5 @@
.section ".data"
.globl __data_start
__data_start:
+ .long 0
weak_alias (__data_start, data_start)
Modified: trunk/libc/sysdeps/powerpc/powerpc64/elf/start.S
==============================================================================
--- trunk/libc/sysdeps/powerpc/powerpc64/elf/start.S (original)
+++ trunk/libc/sysdeps/powerpc/powerpc64/elf/start.S Thu Apr 16 04:55:53 2009
@@ -1,5 +1,6 @@
/* Startup code for programs linked with GNU libc. PowerPC64 version.
- Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
+ Copyright (C) 1998,1999,2000,2001,2002,2003,2009
+ 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
@@ -83,4 +84,5 @@
.section ".data"
.globl __data_start
__data_start:
+ .long 0
weak_alias (__data_start, data_start)
Modified: trunk/libc/sysdeps/sh/bits/setjmp.h
==============================================================================
--- trunk/libc/sysdeps/sh/bits/setjmp.h (original)
+++ trunk/libc/sysdeps/sh/bits/setjmp.h Thu Apr 16 04:55:53 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999,2000,2003,2005,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1999,2000,2003,2005,2006,2009 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
@@ -25,7 +25,7 @@
#endif
#ifndef _ASM
-typedef struct
+typedef struct __jmp_buf_internal_tag
{
/* Callee-saved registers r8 through r15. */
int __regs[8];
Modified: trunk/libc/sysdeps/sparc/sparc32/elf/start.S
==============================================================================
--- trunk/libc/sysdeps/sparc/sparc32/elf/start.S (original)
+++ trunk/libc/sysdeps/sparc/sparc32/elf/start.S Thu Apr 16 04:55:53 2009
@@ -1,5 +1,6 @@
/* Startup code for elf32-sparc
- Copyright (C) 1997, 1998, 2002, 2004, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 2002, 2004, 2007, 2009
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@xxxxxxxxxxxxxx>, 1997.
@@ -96,4 +97,5 @@
.data
.globl __data_start
__data_start:
+ .long 0
weak_alias (__data_start, data_start)
Modified: trunk/libc/sysdeps/sparc/sparc64/elf/start.S
==============================================================================
--- trunk/libc/sysdeps/sparc/sparc64/elf/start.S (original)
+++ trunk/libc/sysdeps/sparc/sparc64/elf/start.S Thu Apr 16 04:55:53 2009
@@ -1,5 +1,6 @@
/* Startup code for elf64-sparc
- Copyright (C) 1997, 1998, 2002, 2004, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 2002, 2004, 2007, 2009
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <richard@xxxxxxxxxxxxxx>, 1997.
@@ -97,4 +98,5 @@
.data
.globl __data_start
__data_start:
+ .long 0
weak_alias (__data_start, data_start)
Modified: trunk/libc/sysdeps/unix/sysv/linux/fallocate.c
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/fallocate.c (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/fallocate.c Thu Apr 16 04:55:53 2009
@@ -25,7 +25,12 @@
int
fallocate (int fd, int mode, __off_t offset, __off_t len)
{
+#ifdef __NR_fallocate
return INLINE_SYSCALL (fallocate, 6, fd, mode,
__LONG_LONG_PAIR (offset >> 31, offset),
__LONG_LONG_PAIR (len >> 31, len));
+#else
+ __set_errno (ENOSYS);
+ return -1;
+#endif
}
Modified: trunk/libc/sysdeps/unix/sysv/linux/fallocate64.c
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/fallocate64.c (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/fallocate64.c Thu Apr 16 04:55:53 2009
@@ -25,9 +25,14 @@
int
__fallocate64_l64 (int fd, int mode, __off64_t offset, __off64_t len)
{
+#ifdef __NR_fallocate
return INLINE_SYSCALL (fallocate, 6, fd, mode,
__LONG_LONG_PAIR ((long int) (offset >> 32),
(long int) offset),
__LONG_LONG_PAIR ((long int) (len >> 32),
(long int) len));
+#else
+ __set_errno (ENOSYS);
+ return -1;
+#endif
}
Modified: trunk/libc/sysdeps/unix/sysv/linux/getsysstats.c
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/getsysstats.c (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/getsysstats.c Thu Apr 16 04:55:53 2009
@@ -93,15 +93,42 @@
return NULL;
*re += n;
+
+ nl = memchr (*cp, '\n', *re - *cp);
+ while (nl == NULL && *re == buffer_end)
+ {
+ /* Truncate too long lines. */
+ *re = buffer + 3 * (buffer_end - buffer) / 4;
+ n = read_not_cancel (fd, *re, buffer_end - *re);
+ if (n < 0)
+ return NULL;
+
+ nl = memchr (*re, '\n', n);
+ **re = '\n';
+ *re += n;
+ }
}
+ else
+ nl = memchr (*cp, '\n', *re - *cp);
res = *cp;
- nl = memchr (*cp, '\n', *re - *cp);
}
if (nl == NULL)
nl = *re - 1;
}
+ else if (nl + 5 >= *re)
+ {
+ memmove (buffer, nl, *re - nl);
+ *re = buffer + (*re - nl);
+ nl = *cp = buffer;
+
+ ssize_t n = read_not_cancel (fd, *re, buffer_end - *re);
+ if (n < 0)
+ return NULL;
+
+ *re += n;
+ }
*cp = nl + 1;
assert (*cp <= *re);
@@ -115,8 +142,9 @@
{
/* XXX Here will come a test for the new system call. */
- char buffer[8192];
- char *const buffer_end = buffer + sizeof (buffer);
+ const size_t buffer_size = __libc_use_alloca (8192) ? 8192 : 512;
+ char *buffer = alloca (buffer_size);
+ char *buffer_end = buffer + buffer_size;
char *cp = buffer_end;
char *re = buffer_end;
int result = 1;
@@ -134,7 +162,11 @@
char *l;
while ((l = next_line (fd, buffer, &cp, &re, buffer_end)) != NULL)
- if (strncmp (l, "cpu", 3) == 0 && isdigit (l[3]))
+ /* The current format of /proc/stat has all the cpu* entries
+ at the front. We assume here that stays this way. */
+ if (strncmp (l, "cpu", 3) != 0)
+ break;
+ else if (isdigit (l[3]))
++result;
close_not_cancel_no_status (fd);
Modified: trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h Thu Apr 16 04:55:53 2009
@@ -533,7 +533,7 @@
/* Support for preadv and pwritev was added in 2.6.30. */
#if __LINUX_KERNEL_VERSION >= 0x02061e \
&& (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
- || defined __ia64__ || defined __sparc__)
+ || defined __ia64__ || defined __sparc__ && defined __sh__)
# define __ASSUME_PREADV 1
# define __ASSUME_PWRITEV 1
#endif
Modified: trunk/libc/sysdeps/unix/sysv/linux/wordsize-64/fallocate.c
==============================================================================
--- trunk/libc/sysdeps/unix/sysv/linux/wordsize-64/fallocate.c (original)
+++ trunk/libc/sysdeps/unix/sysv/linux/wordsize-64/fallocate.c Thu Apr 16 04:55:53 2009
@@ -25,6 +25,11 @@
int
fallocate (int fd, int mode, __off_t offset, __off_t len)
{
+#ifdef __NR_fallocate
return INLINE_SYSCALL (fallocate, 4, fd, mode, offset, len);
+#else
+ __set_errno (ENOSYS);
+ return -1;
+#endif
}
strong_alias (fallocate, fallocate64)
Modified: trunk/ports/ChangeLog.mips
==============================================================================
--- trunk/ports/ChangeLog.mips (original)
+++ trunk/ports/ChangeLog.mips Thu Apr 16 04:55:53 2009
@@ -1,3 +1,7 @@
+2009-04-15 Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/mips/sys/fpregdef.h: Update for new ABIs.
+
2009-04-09 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/mips/bits/socket.h: Add missing protocol
Modified: trunk/ports/sysdeps/mips/sys/fpregdef.h
==============================================================================
--- trunk/ports/sysdeps/mips/sys/fpregdef.h (original)
+++ trunk/ports/sysdeps/mips/sys/fpregdef.h Thu Apr 16 04:55:53 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,94,95,96,97,98,2009 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
@@ -19,19 +19,52 @@
#ifndef _SYS_FPREGDEF_H
#define _SYS_FPREGDEF_H
-/*
- * These definitions only cover the R3000-ish 16/32 register model.
- * But we're trying to be R3000 friendly anyway ...
- */
-#define fv0 $f0 /* return value */
-#define fv0f $f1
+#include <sgidefs.h>
+
+/* Commonalities first, individualities next... */
+
+#define fv0 $f0 /* return value */
#define fv1 $f2
+
+#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
+#define fs0 $f20 /* callee saved */
+#define fs1 $f22
+#define fs2 $f24
+#define fs3 $f26
+#define fs4 $f28
+#define fs5 $f30
+#endif /* _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32 */
+
+#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
+#define fa0 $f12 /* argument registers */
+#define fa1 $f13
+#define fa2 $f14
+#define fa3 $f15
+#define fa4 $f16
+#define fa5 $f17
+#define fa6 $f18
+#define fa7 $f19
+
+#define ft0 $f4 /* caller saved */
+#define ft1 $f5
+#define ft2 $f6
+#define ft3 $f7
+#define ft4 $f8
+#define ft5 $f9
+#define ft6 $f10
+#define ft7 $f11
+#endif /* _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32 */
+
+#if _MIPS_SIM == _ABIO32
+#define fv0f $f1 /* return value, high part */
#define fv1f $f3
-#define fa0 $f12 /* argument registers */
+
+#define fa0 $f12 /* argument registers */
#define fa0f $f13
#define fa1 $f14
#define fa1f $f15
-#define ft0 $f4 /* caller saved */
+
+#define ft0 $f4 /* caller saved */
#define ft0f $f5
#define ft1 $f6
#define ft1f $f7
@@ -43,19 +76,44 @@
#define ft4f $f17
#define ft5 $f18
#define ft5f $f19
-#define fs0 $f20 /* callee saved */
-#define fs0f $f21
-#define fs1 $f22
+
+#define fs0f $f21 /* callee saved, high part */
#define fs1f $f23
-#define fs2 $f24
#define fs2f $f25
-#define fs3 $f26
#define fs3f $f27
+#define fs4f $f29
+#define fs5f $f31
+#endif /* _MIPS_SIM == _ABIO32 */
+
+#if _MIPS_SIM == _ABI64
+#define ft8 $f20 /* caller saved */
+#define ft9 $f21
+#define ft10 $f22
+#define ft11 $f23
+#define ft12 $f1
+#define ft13 $f3
+
+#define fs0 $f24 /* callee saved */
+#define fs1 $f25
+#define fs2 $f26
+#define fs3 $f27
#define fs4 $f28
-#define fs4f $f29
-#define fs5 $f30
-#define fs5f $f31
+#define fs5 $f29
+#define fs6 $f30
+#define fs7 $f31
+#endif /* _MIPS_SIM == _ABI64 */
-#define fcr31 $31 /* FPU status register */
+#if _MIPS_SIM == _ABIN32
+#define ft8 $f21 /* caller saved */
+#define ft9 $f23
+#define ft10 $f25
+#define ft11 $f27
+#define ft12 $f29
+#define ft13 $f31
+#define ft14 $f1
+#define ft15 $f3
+#endif /* _MIPS_SIM == _ABIN32 */
+
+#define fcr31 $31 /* FPU status register */
#endif /* sys/fpregdef.h */