From acf47bbeebc8ceefe62bb13325e03080bbeed74c Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 11 Oct 1999 23:36:50 +0000 Subject: [PATCH] Update. * sysdeps/unix/sysv/linux/powerpc/socket.S: Adjust asm syntax. * sysdeps/unix/sysv/linux/powerpc/clone.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscall.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/brk.S: Likewise. --- ChangeLog | 5 +++- sysdeps/unix/sysv/linux/powerpc/brk.S | 28 ++++++++++----------- sysdeps/unix/sysv/linux/powerpc/clone.S | 42 +++++++++++++++---------------- sysdeps/unix/sysv/linux/powerpc/socket.S | 26 +++++++++---------- sysdeps/unix/sysv/linux/powerpc/syscall.S | 14 +++++------ 5 files changed, 59 insertions(+), 56 deletions(-) diff --git a/ChangeLog b/ChangeLog index 274402b..faa3032 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ 1999-10-11 Ulrich Drepper - * sysdeps/unix/sysv/linux/powerpc/brk.S: Adjust asm syntax. + * sysdeps/unix/sysv/linux/powerpc/socket.S: Adjust asm syntax. + * sysdeps/unix/sysv/linux/powerpc/clone.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/syscall.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/brk.S: Likewise. * sysdeps/powerpc/Makefile [math] (libm-support): Remove t_sqrt. diff --git a/sysdeps/unix/sysv/linux/powerpc/brk.S b/sysdeps/unix/sysv/linux/powerpc/brk.S index f4a3f3b..16f5215 100644 --- a/sysdeps/unix/sysv/linux/powerpc/brk.S +++ b/sysdeps/unix/sysv/linux/powerpc/brk.S @@ -1,5 +1,5 @@ /* brk system call for Linux/ppc. - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999 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 @@ -24,25 +24,25 @@ .comm __curbrk,4,4 .section ".text" ENTRY(__brk) - stwu %r1,-16(%r1) - stw %r3,8(%r1) + stwu r1,-16(r1) + stw r3,8(r1) DO_CALL(SYS_ify(brk)) - lwz %r6,8(%r1) + lwz r6,8(r1) #ifdef PIC - mflr %r4 + mflr r4 bl _GLOBAL_OFFSET_TABLE_@local-4 - mflr %r5 - lwz %r5,__curbrk@got(%r5) - mtlr %r4 - stw %r3,0(%r5) + mflr r5 + lwz r5,__curbrk@got(r5) + mtlr r4 + stw r3,0(r5) #else - stw %r3,__curbrk@sdarel(%r13) + stw r3,__curbrk@sdarel(r13) #endif - cmplw %r6,%r3 - addi %r1,%r1,16 - li %r3,0 + cmplw r6,r3 + addi r1,r1,16 + li r3,0 blelr+ - li %r3,ENOMEM + li r3,ENOMEM b JUMPTARGET(__syscall_error) END (__brk) diff --git a/sysdeps/unix/sysv/linux/powerpc/clone.S b/sysdeps/unix/sysv/linux/powerpc/clone.S index 69d2c5f..d5703d6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/clone.S +++ b/sysdeps/unix/sysv/linux/powerpc/clone.S @@ -1,5 +1,5 @@ /* Wrapper around clone system call. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1997, 1998, 1999 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 @@ -29,58 +29,58 @@ ENTRY(__clone) /* Check for child_stack == NULL || fn == NULL. */ - cmpwi %cr0,%r4,0 - cmpwi %cr1,%r3,0 + cmpwi cr0,r4,0 + cmpwi cr1,r3,0 cror cr0*4+eq,cr1*4+eq,cr0*4+eq - beq- %cr0,L(badargs) + beq- cr0,L(badargs) /* Set up stack frame for parent. */ - stwu %r1,-32(%r1) - stmw %r29,16(%r1) + stwu r1,-32(r1) + stmw r29,16(r1) /* Set up stack frame for child. */ - clrrwi %r4,%r4,4 - li %r0,0 - stwu %r0,-16(%r4) + clrrwi r4,r4,4 + li r0,0 + stwu r0,-16(r4) /* Save fn, args, stack across syscall. */ - mr %r29,%r3 /* Function in r29. */ - mr %r30,%r4 /* Stack pointer in r30. */ - mr %r31,%r6 /* Argument in r31. */ + mr r29,r3 /* Function in r29. */ + mr r30,r4 /* Stack pointer in r30. */ + mr r31,r6 /* Argument in r31. */ /* 'flags' argument is first parameter to clone syscall. (The other argument is the stack pointer, already in r4.) */ - mr %r3,%r5 + mr r3,r5 /* Do the call. */ DO_CALL(SYS_ify(clone)) /* Check for child process. */ - cmpwi %cr1,%r3,0 + cmpwi cr1,r3,0 crandc cr1*4+eq,cr1*4+eq,cr0*4+so - bne- %cr1,L(parent) /* The '-' is to minimise the race. */ + bne- cr1,L(parent) /* The '-' is to minimise the race. */ /* On at least mklinux DR3a5, clone() doesn't actually change the stack pointer. I'm pretty sure this is a bug, because it adds a race condition if a signal is sent to a thread just after it is created (in the previous three instructions). */ - mr %r1,%r30 + mr r1,r30 /* Call procedure. */ - mtctr %r29 - mr %r3,%r31 + mtctr r29 + mr r3,r31 bctrl /* Call _exit with result from procedure. */ b JUMPTARGET(_exit) L(parent): /* Parent. Restore registers & return. */ - lmw %r29,16(%r1) - addi %r1,%r1,32 + lmw r29,16(r1) + addi r1,r1,32 bnslr+ b JUMPTARGET(__syscall_error) L(badargs): - li %r3,EINVAL + li r3,EINVAL b JUMPTARGET(__syscall_error) END (__clone) diff --git a/sysdeps/unix/sysv/linux/powerpc/socket.S b/sysdeps/unix/sysv/linux/powerpc/socket.S index d6306bb..6252ade 100644 --- a/sysdeps/unix/sysv/linux/powerpc/socket.S +++ b/sysdeps/unix/sysv/linux/powerpc/socket.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 1999 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 @@ -47,38 +47,38 @@ .text ENTRY(__socket) - stwu %r1,-48(%r1) + stwu r1,-48(r1) #if NARGS >= 1 - stw %r3,stackblock(%r1) + stw r3,stackblock(r1) #endif #if NARGS >= 2 - stw %r4,4+stackblock(%r1) + stw r4,4+stackblock(r1) #endif #if NARGS >= 3 - stw %r5,8+stackblock(%r1) + stw r5,8+stackblock(r1) #endif #if NARGS >= 4 - stw %r6,12+stackblock(%r1) + stw r6,12+stackblock(r1) #endif #if NARGS >= 5 - stw %r7,16+stackblock(%r1) + stw r7,16+stackblock(r1) #endif #if NARGS >= 6 - stw %r8,20+stackblock(%r1) + stw r8,20+stackblock(r1) #endif #if NARGS >= 7 - stw %r9,24+stackblock(%r1) + stw r9,24+stackblock(r1) #endif #if NARGS >= 8 - stw %r10,28+stackblock(%r1) + stw r10,28+stackblock(r1) #endif #if NARGS >= 9 #error too many arguments! #endif - li %r3,P(SOCKOP_,socket) - addi %r4,%r1,stackblock + li r3,P(SOCKOP_,socket) + addi r4,r1,stackblock DO_CALL(SYS_ify(socketcall)) - addi %r1,%r1,48 + addi r1,r1,48 PSEUDO_RET PSEUDO_END (__socket) diff --git a/sysdeps/unix/sysv/linux/powerpc/syscall.S b/sysdeps/unix/sysv/linux/powerpc/syscall.S index 4d55076..9266234 100644 --- a/sysdeps/unix/sysv/linux/powerpc/syscall.S +++ b/sysdeps/unix/sysv/linux/powerpc/syscall.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1997, 1999 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,12 +19,12 @@ #include ENTRY (syscall) - mr %r0,%r3 - mr %r3,%r4 - mr %r4,%r5 - mr %r5,%r6 - mr %r6,%r7 - mr %r7,%r8 + mr r0,r3 + mr r3,r4 + mr r4,r5 + mr r5,r6 + mr r6,r7 + mr r7,r8 sc PSEUDO_RET PSEUDO_END (syscall) -- 2.7.4