This commit is contained in:
Jakub Jelinek 2009-02-18 23:18:08 +00:00
parent 8591a1d11a
commit 3bdc2b1398
2 changed files with 53 additions and 2 deletions

View File

@ -2111,6 +2111,9 @@
Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S:
Likewise.
* sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_SET_DI_FPSCR): Likewise.
* sysdeps/powerpc/fpu/fenv_libc.h (fesetenv_register,
relax_fenv_state): Likewise.
--- libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S.jj 2008-11-17 03:49:06.000000000 +0100
+++ libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S 2009-02-18 22:55:07.000000000 +0100
@ -2240,3 +2243,51 @@
# endif /* _ARCH_PWR6 */
lfd fp1,_UC_FREGS+(1*8)(r31)
lfd fp2,_UC_FREGS+(2*8)(r31)
--- libc/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c.jj 2009-01-30 21:27:24.000000000 +0100
+++ libc/sysdeps/powerpc/fpu/tst-setcontext-fpscr.c 2009-02-18 23:40:01.000000000 +0100
@@ -111,7 +111,11 @@ typedef unsigned int si_fpscr_t __attrib
tmp __attribute__ ((__aligned__(8))); \
tmp.fpscr = __fpscr; \
/* Set the entire 64-bit FPSCR. */ \
- __asm__ ("lfd%U0 0,%0; mtfsf 255,0,1,0" : : "m" (tmp.d) : "fr0"); \
+ __asm__ ("lfd%U0 0,%0; " \
+ ".machine push; " \
+ ".machine \"power6\"; " \
+ "mtfsf 255,0,1,0; " \
+ ".machine pop" : : "m" (tmp.d) : "fr0"); \
tmp.d = 0; \
__asm__("lfd%U0 0,%0" : : "m" (tmp.d) : "fr0"); \
}
--- libc/sysdeps/powerpc/fpu/fenv_libc.h.jj 2008-11-17 02:32:11.000000000 +0100
+++ libc/sysdeps/powerpc/fpu/fenv_libc.h 2009-02-18 23:42:15.000000000 +0100
@@ -1,5 +1,5 @@
/* Internal libc stuff for floating point environment routines.
- Copyright (C) 1997, 2006, 2008 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2006, 2008, 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
@@ -39,7 +39,10 @@ libm_hidden_proto (__fe_nomask_env)
do { \
double d = (env); \
if(GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \
- asm volatile ("mtfsf 0xff,%0,1,0" : : "f" (d)); \
+ asm volatile (".machine push; " \
+ ".machine \"power6\"; " \
+ "mtfsf 0xff,%0,1,0; " \
+ ".machine pop" : : "f" (d)); \
else \
asm volatile ("mtfsf 0xff,%0" : : "f" (d)); \
} while(0)
@@ -52,8 +55,9 @@ libm_hidden_proto (__fe_nomask_env)
functions. */
#define relax_fenv_state() \
do { \
- if(GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \
- asm ("mtfsfi 7,0,1"); \
+ if (GLRO(dl_hwcap) & PPC_FEATURE_HAS_DFP) \
+ asm (".machine push; .machine \"power6\"; " \
+ "mtfsfi 7,0,1; .machine pop"); \
asm ("mtfsfi 7,0"); \
} while(0)

View File

@ -23,7 +23,7 @@
Summary: The GNU libc libraries
Name: glibc
Version: 2.9.90
Release: 5
Release: 6
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
# Things that are linked directly into dynamically linked programs
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
@ -1013,7 +1013,7 @@ rm -f *.filelist*
%endif
%changelog
* Wed Feb 18 2009 Jakub Jelinek <jakub@redhat.com> 2.9.90-5
* Wed Feb 18 2009 Jakub Jelinek <jakub@redhat.com> 2.9.90-6
- update from trunk
- adjust for i586 + i686 from i386 + i686 build
- split static libraries into glibc-static subpackage