From 0585697658a4f4afd4b9811b7a3f73ff820a20d8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 20 Feb 2003 22:23:34 +0000 Subject: Update. 2002-07-24 Philip Blundell * sysdeps/unix/sysv/linux/arm/ioperm.c (init_iosys): Yield ENODEV on unknown systems. 2003-02-20 Franz Sirl * sysdeps/powerpc/powerpc32/atomicity.h: Remove compiler workaround. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_NEW_PRCTL_SYSCALL): Defined for ppc32 too. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: Use prctl if possible. * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short interprocedure branches. * sysdeps/powerpc/soft-fp/Dist (sim-full.c, fenv_const.c): Move to... * sysdeps/powerpc/nofpu/Dist: ...here. * sysdeps/unix/sysv/linux/powerpc/Dist (fe_nomask.c): Move to... * sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist: ...here. * sysdeps/unix/sysv/linux/s390/s390-64/Dist (kernel_stat.h): Delete. * sysdeps/unix/sysv/linux/sparc/Dist (bits/utmpx.h): Delete. * sysdeps/unix/sysv/linux/x86_64/Dist (bits/utmpx.h): Delete. --- linuxthreads/ChangeLog | 5 ++++ .../unix/sysv/linux/powerpc/powerpc32/vfork.S | 29 +++++++++------------- 2 files changed, 17 insertions(+), 17 deletions(-) (limited to 'linuxthreads') diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index f05881dd82..8a7ba0eaa3 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,8 @@ +2003-02-20 Franz Sirl + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short + interprocedure branches. + 2003-02-19 Ulrich Drepper * specific.c (pthread_key_delete_helper): Don't use GETMEM, we diff --git a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S index 5054d5f984..ee6254a950 100644 --- a/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S +++ b/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S @@ -36,16 +36,15 @@ ENTRY (__vfork) mtlr 9 lwz 10,__libc_pthread_functions@got(10) lwz 10,0(10) - cmpwi 10,0 - bne- HIDDEN_JUMPTARGET(__fork) # else .weak pthread_create - lis 9,pthread_create@ha - la 9,pthread_create@l(9) - cmpwi 9,0 - bne- .Lhidden_fork + lis 10,pthread_create@ha + la 10,pthread_create@l(10) # endif + cmpwi 10,0 + bne- .Lhidden_fork + DO_CALL (SYS_ify (vfork)); # ifdef __ASSUME_VFORK_SYSCALL @@ -54,28 +53,24 @@ ENTRY (__vfork) bnslr+ /* Check if vfork syscall is known at all. */ cmpwi r3,ENOSYS -# ifdef SHARED - bne JUMPTARGET(__syscall_error) -# else - bne .Lsyscall_error -# endif + bne- .Lsyscall_error # endif + +.Lhidden_fork: + b HIDDEN_JUMPTARGET(__fork) + #endif #ifndef __ASSUME_VFORK_SYSCALL /* If we don't have vfork, fork is close enough. */ DO_CALL (SYS_ify (fork)); - PSEUDO_RET -#endif + bnslr+ -# ifndef SHARED -.Lhidden_fork: - b HIDDEN_JUMPTARGET(__fork) .Lsyscall_error: b JUMPTARGET(__syscall_error) -# endif +#endif PSEUDO_END (__vfork) libc_hidden_def (__vfork) -- cgit 1.4.1