aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc/strlen.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-10-11 22:31:36 +0000
committerUlrich Drepper <drepper@redhat.com>1999-10-11 22:31:36 +0000
commit217eb19b6f28429aa02792764bfd7b9f51743be2 (patch)
tree8889fa7ed4cc9b561e2fc8372b604cbd55eb2402 /sysdeps/powerpc/strlen.S
parentdf08cc56eb0a050bd1d7cf569d78d4f9d2a20964 (diff)
downloadglibc-217eb19b6f28429aa02792764bfd7b9f51743be2.zip
glibc-217eb19b6f28429aa02792764bfd7b9f51743be2.tar.gz
glibc-217eb19b6f28429aa02792764bfd7b9f51743be2.tar.bz2
Update.
1999-10-11 Ulrich Drepper <drepper@cygnus.com> * sysdeps/powerpc/Makefile [math] (libm-support): Remove t_sqrt. * sysdeps/powerpc/e_sqrt.c: Moved to... * sysdeps/powerpc/fpu/e_sqrt.c: ...here. * sysdeps/powerpc/e_sqrtf.c: Moved to... * sysdeps/powerpc/fpu/e_sqrtf.c: ...here. * sysdeps/powerpc/submul_1.S: Adjust asm syntax. * sysdeps/powerpc/sub_n.S: Likewise. * sysdeps/powerpc/strlen.S: Likewise. * sysdeps/powerpc/strcpy.S: Likewise. * sysdeps/powerpc/strcmp.S: Likewise. * sysdeps/powerpc/strchr.S: Likewise. * sysdeps/powerpc/stpcpy.S: Likewise. * sysdeps/powerpc/setjmp.S: Likewise. * sysdeps/powerpc/rshift.S: Likewise. * sysdeps/powerpc/ppc-mcount.S: Likewise. * sysdeps/powerpc/mul_1.S: Likewise. * sysdeps/powerpc/memset.S: Likewise. * sysdeps/powerpc/lshift.S: Likewise. * sysdeps/powerpc/dl-start.S: Likewise. * sysdeps/powerpc/bzero.S: Likewise. * sysdeps/powerpc/bsd-setjmp.S: Likewise. * sysdeps/powerpc/bsd-_setjmp.S: Likewise. * sysdeps/powerpc/addmul_1.S: Likewise. * sysdeps/powerpc/add_n.S: Likewise. * sysdeps/powerpc/__longjmp.S: Likewise. * sysdeps/powerpc/elf/start.S: Likewise. 1999-10-11 Cristian Gafton <gafton@redhat.com> * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Declare
Diffstat (limited to 'sysdeps/powerpc/strlen.S')
-rw-r--r--sysdeps/powerpc/strlen.S80
1 files changed, 40 insertions, 40 deletions
diff --git a/sysdeps/powerpc/strlen.S b/sysdeps/powerpc/strlen.S
index dc6660b..b847ee4 100644
--- a/sysdeps/powerpc/strlen.S
+++ b/sysdeps/powerpc/strlen.S
@@ -1,5 +1,5 @@
/* Optimized strlen implementation for PowerPC.
- Copyright (C) 1997 Free Software Foundation, Inc.
+ Copyright (C) 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
@@ -77,68 +77,68 @@ ENTRY(strlen)
start at a word boundary. r8 holds the 'current' word.
r9-12 are temporaries. r0 is used as a temporary and for discarded
results. */
- clrrwi %r4,%r3,2
- lis %r7,0x7f7f
- rlwinm %r5,%r3,3,27,28
- lwz %r8,0(%r4)
- li %r9,-1
- addi %r7,%r7,0x7f7f
+ clrrwi r4,r3,2
+ lis r7,0x7f7f
+ rlwinm r5,r3,3,27,28
+ lwz r8,0(r4)
+ li r9,-1
+ addi r7,r7,0x7f7f
/* That's the setup done, now do the first pair of words.
We make an exception and use method (2) on the first two words, to reduce
overhead. */
- srw %r9,%r9,%r5
- and %r0,%r7,%r8
- or %r10,%r7,%r8
- add %r0,%r0,%r7
- nor %r0,%r10,%r0
- and. %r8,%r0,%r9
- mtcrf 0x01,%r3
+ srw r9,r9,r5
+ and r0,r7,r8
+ or r10,r7,r8
+ add r0,r0,r7
+ nor r0,r10,r0
+ and. r8,r0,r9
+ mtcrf 0x01,r3
bne L(done0)
- lis %r6,0xfeff
- addi %r6,%r6,-0x101
+ lis r6,0xfeff
+ addi r6,r6,-0x101
/* Are we now aligned to a doubleword boundary? */
bt 29,L(loop)
/* Handle second word of pair. */
- lwzu %r8,4(%r4)
- and %r0,%r7,%r8
- or %r10,%r7,%r8
- add %r0,%r0,%r7
- nor. %r8,%r10,%r0
+ lwzu r8,4(r4)
+ and r0,r7,r8
+ or r10,r7,r8
+ add r0,r0,r7
+ nor. r8,r10,r0
bne L(done0)
/* The loop. */
L(loop):
- lwz %r8,4(%r4)
- lwzu %r9,8(%r4)
- add %r0,%r6,%r8
- nor %r10,%r7,%r8
- and. %r0,%r0,%r10
- add %r11,%r6,%r9
- nor %r12,%r7,%r9
+ lwz r8,4(r4)
+ lwzu r9,8(r4)
+ add r0,r6,r8
+ nor r10,r7,r8
+ and. r0,r0,r10
+ add r11,r6,r9
+ nor r12,r7,r9
bne L(done1)
- and. %r0,%r11,%r12
+ and. r0,r11,r12
beq L(loop)
- and %r0,%r7,%r9
- add %r0,%r0,%r7
- andc %r8,%r12,%r0
+ and r0,r7,r9
+ add r0,r0,r7
+ andc r8,r12,r0
b L(done0)
L(done1):
- and %r0,%r7,%r8
- subi %r4,%r4,4
- add %r0,%r0,%r7
- andc %r8,%r10,%r0
+ and r0,r7,r8
+ subi r4,r4,4
+ add r0,r0,r7
+ andc r8,r10,r0
/* When we get to here, r4 points to the first word in the string that
contains a zero byte, and the most significant set bit in r8 is in that
byte. */
L(done0):
- cntlzw %r11,%r8
- subf %r0,%r3,%r4
- srwi %r11,%r11,3
- add %r3,%r0,%r11
+ cntlzw r11,r8
+ subf r0,r3,r4
+ srwi r11,r11,3
+ add r3,r0,r11
blr
END(strlen)