2006-02-24 Roland McGrath <roland@redhat.com>
[kopensolaris-gnu/glibc.git] / sysdeps / x86_64 / strcspn.S
index 7afa86b..4672013 100644 (file)
@@ -1,7 +1,8 @@
 /* strcspn (str, ss) -- Return the length of the initial segment of STR
                        which contains no characters from SS.
    For AMD x86-64.
-   Copyright (C) 1994-1997, 2000, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997, 2000, 2002, 2003, 2004, 2005
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>.
    Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>.
@@ -40,9 +41,10 @@ ENTRY (strcspn)
           table.  */
        movq %rdi, %r8                  /* Save value.  */
        subq $256, %rsp                 /* Make space for 256 bytes.  */
-       movq $32,  %rcx                 /* 32*8 bytes = 256 bytes.  */
+       cfi_adjust_cfa_offset(256)
+       movl $32,  %ecx                 /* 32*8 bytes = 256 bytes.  */
        movq %rsp, %rdi
-       xorq %rax, %rax                 /* We store 0s.  */
+       xorl %eax, %eax                 /* We store 0s.  */
        cld
        rep
        stosq
@@ -110,8 +112,9 @@ L(6):       incq %rax
 L(5):  incq %rax
 
 L(4):  addq $256, %rsp         /* remove skipset */
+       cfi_adjust_cfa_offset(-256)
 #if STRPBRK_P
-       xorq %rdx,%rdx
+       xorl %edx,%edx
        orb %cl, %cl            /* was last character NUL? */
        cmovzq %rdx, %rax       /* Yes: return NULL */
 #else