Updated to fedora-glibc-20050504T0728
authorjakub <jakub>
Wed, 4 May 2005 07:51:20 +0000 (07:51 +0000)
committerjakub <jakub>
Wed, 4 May 2005 07:51:20 +0000 (07:51 +0000)
50 files changed:
fedora/branch.mk
nptl/ChangeLog
nptl/sysdeps/pthread/pthread.h
nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
sysdeps/i386/add_n.S
sysdeps/i386/addmul_1.S
sysdeps/i386/bsd-setjmp.S
sysdeps/i386/elf/bsd-setjmp.S
sysdeps/i386/fpu/libm-test-ulps
sysdeps/i386/i486/strcat.S
sysdeps/i386/i586/add_n.S
sysdeps/i386/i586/addmul_1.S
sysdeps/i386/i586/lshift.S
sysdeps/i386/i586/memcpy.S
sysdeps/i386/i586/memset.S
sysdeps/i386/i586/mul_1.S
sysdeps/i386/i586/rshift.S
sysdeps/i386/i586/strchr.S
sysdeps/i386/i586/strcpy.S
sysdeps/i386/i586/sub_n.S
sysdeps/i386/i586/submul_1.S
sysdeps/i386/i686/add_n.S
sysdeps/i386/i686/memcmp.S
sysdeps/i386/i686/memmove.S
sysdeps/i386/i686/mempcpy.S
sysdeps/i386/i686/memset.S
sysdeps/i386/i686/strtok.S
sysdeps/i386/lshift.S
sysdeps/i386/memchr.S
sysdeps/i386/memcmp.S
sysdeps/i386/mul_1.S
sysdeps/i386/rawmemchr.S
sysdeps/i386/rshift.S
sysdeps/i386/stpncpy.S
sysdeps/i386/strchr.S
sysdeps/i386/strchrnul.S
sysdeps/i386/strcspn.S
sysdeps/i386/strpbrk.S
sysdeps/i386/strrchr.S
sysdeps/i386/strspn.S
sysdeps/i386/strtok.S
sysdeps/i386/sub_n.S
sysdeps/i386/submul_1.S
sysdeps/unix/sysv/linux/i386/clone.S
sysdeps/unix/sysv/linux/i386/mmap.S
sysdeps/unix/sysv/linux/i386/mmap64.S
sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
sysdeps/unix/sysv/linux/i386/semtimedop.S
sysdeps/unix/sysv/linux/i386/setcontext.S
sysdeps/unix/sysv/linux/kernel-features.h

index b20251e..294fe6e 100644 (file)
@@ -1,5 +1,5 @@
 # This file is updated automatically by Makefile.
 glibc-branch := fedora
 glibc-base := HEAD
-fedora-sync-date := 2005-05-03 08:52 UTC
-fedora-sync-tag := fedora-glibc-20050503T0852
+fedora-sync-date := 2005-05-04 07:28 UTC
+fedora-sync-tag := fedora-glibc-20050504T0728
index 8aa9b30..7beb16c 100644 (file)
@@ -1,3 +1,13 @@
+2005-05-03  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #915]
+       * sysdeps/pthread/pthread.h: Avoid empty initializers.
+
+2005-05-03  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
+       .eh_frame section, use cfi_* directives.
+
 2005-04-27  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
index 18ece70..05f3b31 100644 (file)
@@ -62,7 +62,7 @@ enum
 
 /* Mutex initializers.  */
 #define PTHREAD_MUTEX_INITIALIZER \
-  { }
+  { { 0, } }
 #ifdef __USE_GNU
 # if __WORDSIZE == 64
 #  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
@@ -94,7 +94,7 @@ enum
 
 /* Read-write lock initializers.  */
 # define PTHREAD_RWLOCK_INITIALIZER \
-  { }
+  { { 0, } }
 # ifdef __USE_GNU
 #  if __WORDSIZE == 64
 #   define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
@@ -140,7 +140,7 @@ enum
 
 
 /* Conditional variable handling.  */
-#define PTHREAD_COND_INITIALIZER { }
+#define PTHREAD_COND_INITIALIZER { { 0, } }
 
 
 /* Cleanup buffers */
index 8142455..147f5c8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
 
@@ -29,7 +29,6 @@
 # define PSEUDO(name, syscall_name, args)                                    \
   .text;                                                                     \
   ENTRY (name)                                                               \
-  L(name##START):                                                            \
     cmpl $0, %gs:MULTIPLE_THREADS_OFFSET;                                    \
     jne L(pseudo_cancel);                                                    \
   .type __##syscall_name##_nocancel,@function;                               \
     POPSTATE_##args                                                          \
     cmpl $-4095, %eax;                                                       \
     jae SYSCALL_ERROR_LABEL;                                                 \
-  L(pseudo_end):                                                             \
-                                                                             \
-  /* Create unwinding information for the syscall wrapper.  */               \
-  .section .eh_frame,"a",@progbits;                                          \
-  L(STARTFRAME):                                                             \
-    /* Length of the CIE.  */                                                \
-    .long L(ENDCIE)-L(STARTCIE);                                             \
-  L(STARTCIE):                                                               \
-    /* CIE ID.  */                                                           \
-    .long 0;                                                                 \
-    /* Version number.  */                                                   \
-    .byte 1;                                                                 \
-    /* NUL-terminated augmentation string.  */                               \
-    AUGMENTATION_STRING;                                                     \
-    /* Code alignment factor.  */                                            \
-    .uleb128 1;                                                                      \
-    /* Data alignment factor.  */                                            \
-    .sleb128 -4;                                                             \
-    /* Return address register column.  */                                   \
-    .byte 8;                                                                 \
-    /* Optional augmentation parameter.  */                                  \
-    AUGMENTATION_PARAM                                                       \
-    /* Start of the table initialization.  */                                \
-    .byte 0xc;                 /* DW_CFA_def_cfa */                          \
-    .uleb128 4;                                                                      \
-    .uleb128 4;                                                                      \
-    .byte 0x88;                        /* DW_CFA_offset, column 0x8 */               \
-    .uleb128 1;                                                                      \
-    .align 4;                                                                \
-  L(ENDCIE):                                                                 \
-    /* Length of the FDE.  */                                                \
-    .long L(ENDFDE)-L(STARTFDE);                                             \
-  L(STARTFDE):                                                               \
-    /* CIE pointer.  */                                                              \
-    .long L(STARTFDE)-L(STARTFRAME);                                         \
-    /* Start address of the code.  */                                        \
-    START_SYMBOL_REF (name);                                                 \
-    /* Length of the code.  */                                               \
-    .long L(name##END)-L(name##START);                                       \
-    /* Augmentation data.  */                                                \
-    AUGMENTATION_PARAM_FDE                                                   \
-    /* The rest of the code depends on the number of parameters the syscall   \
-       takes.  */                                                            \
-    EH_FRAME_##args(name);                                                   \
-    .align 4;                                                                \
-  L(ENDFDE):                                                                 \
-  .previous
-
-# ifdef SHARED
-/* NUL-terminated augmentation string.  Note "z" means there is an
-   augmentation value later on.  */
-#  define AUGMENTATION_STRING .string "zR"
-#  define AUGMENTATION_PARAM \
-    /* Augmentation value length.  */                                        \
-    .uleb128 1;                                                                      \
-    /* Encoding: DW_EH_PE_pcrel + DW_EH_PE_sdata4.  */                       \
-    .byte 0x1b;
-#  define AUGMENTATION_PARAM_FDE \
-    /* No augmentation data.  */                                             \
-    .uleb128 0;
-#  define START_SYMBOL_REF(name) \
-    /* PC-relative start address of the code.  */                            \
-    .long L(name##START)-.
-# else
-/* No augmentation.  */
-#  define AUGMENTATION_STRING .ascii "\0"
-#  define AUGMENTATION_PARAM /* nothing */
-#  define AUGMENTATION_PARAM_FDE /* nothing */
-#  define START_SYMBOL_REF(name) \
-    /* Absolute start address of the code.  */                               \
-    .long L(name##START)
-# endif
-
-/* Callframe description for syscalls without parameters.  This is very
-   simple.  The only place the stack pointer is changed is when the old
-   cancellation state value is saved.  */
-# define EH_FRAME_0(name) \
-    .byte 0x40+L(PUSHSTATE)-L(name##START);    /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0x40+L(POPSTATE)-L(PUSHSTATE);       /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 4
-
-/* For syscalls with one and two parameters the code is the same as for
-   those which take no parameter.  */
-# define EH_FRAME_1(name) \
-    .byte 0x40+L(SAVEBX1)-L(name##START);      /* DW_CFA_advance_loc+N */    \
-    .byte 9;                                   /* DW_CFA_register */         \
-    .uleb128 3;                                        /* %ebx */                    \
-    .uleb128 2;                                        /* %edx */                    \
-    .byte 0x40+L(RESTBX1)-L(SAVEBX1);          /* DW_CFA_advance_loc+N */    \
-    .byte 0xc3;                                        /* DW_CFA_restore %ebx */     \
-    .byte 0x40+L(PUSHSTATE)-L(RESTBX1);                /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0x40+L(SAVEBX2)-L(PUSHSTATE);                /* DW_CFA_advance_loc+N */    \
-    .byte 9;                                   /* DW_CFA_register */         \
-    .uleb128 3;                                        /* %ebx */                    \
-    .uleb128 2;                                        /* %edx */                    \
-    .byte 0x40+L(RESTBX2)-L(SAVEBX2);          /* DW_CFA_advance_loc+N */    \
-    .byte 0xc3;                                        /* DW_CFA_restore %ebx */     \
-    .byte 0x40+L(POPSTATE)-L(RESTBX2);         /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 4
-
-# define EH_FRAME_2(name) EH_FRAME_1 (name)
-
-/* For syscalls with three parameters the stack pointer is changed
-   also to save the content of the %ebx register.  */
-# define EH_FRAME_3(name) \
-    .byte 0x40+L(PUSHBX1)-L(name##START);      /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0x83;                                        /* DW_CFA_offset %ebx */      \
-    .uleb128 2;                                                                      \
-    .byte 0x40+L(POPBX1)-L(PUSHBX1);           /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 4;                                                                      \
-    .byte 0xc3;                                        /* DW_CFA_restore %ebx */     \
-    .byte 0x40+L(PUSHSTATE)-L(POPBX1);         /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0x40+L(PUSHBX2)-L(PUSHSTATE);                /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 12;                                                             \
-    .byte 0x83;                                        /* DW_CFA_offset %ebx */      \
-    .uleb128 3;                                                                      \
-    .byte 0x40+L(POPBX2)-L(PUSHBX2);           /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0xc3;                                        /* DW_CFA_restore %ebx */     \
-    .byte 0x40+L(POPSTATE)-L(POPBX2);          /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 4
-
-/* With four parameters the syscall wrappers have to save %ebx and %esi.  */
-# define EH_FRAME_4(name) \
-    .byte 0x40+L(PUSHSI1)-L(name##START);      /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0x86;                                        /* DW_CFA_offset %esi */      \
-    .uleb128 2;                                                                      \
-    .byte 0x40+L(PUSHBX1)-L(PUSHSI1);          /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 12;                                                             \
-    .byte 0x83;                                        /* DW_CFA_offset %ebx */      \
-    .uleb128 3;                                                                      \
-    .byte 0x40+L(POPBX1)-L(PUSHBX1);           /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0xc3;                                        /* DW_CFA_restore %ebx */     \
-    .byte 0x40+L(POPSI1)-L(POPBX1);            /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 4;                                                                      \
-    .byte 0xc6;                                        /* DW_CFA_restore %esi */     \
-    .byte 0x40+L(PUSHSTATE)-L(POPSI1);         /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0x40+L(PUSHSI2)-L(PUSHSTATE);                /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 12;                                                             \
-    .byte 0x86;                                        /* DW_CFA_offset %esi */      \
-    .uleb128 3;                                                                      \
-    .byte 0x40+L(PUSHBX2)-L(PUSHSI2);          /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 16;                                                             \
-    .byte 0x83;                                        /* DW_CFA_offset %ebx */      \
-    .uleb128 4;                                                                      \
-    .byte 0x40+L(POPBX2)-L(PUSHBX2);           /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 12;                                                             \
-    .byte 0xc3;                                        /* DW_CFA_restore %ebx */     \
-    .byte 0x40+L(POPSI2)-L(POPBX2);            /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0xc6;                                        /* DW_CFA_restore %esi */     \
-    .byte 0x40+L(POPSTATE)-L(POPSI2);          /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 4
-
-/* With five parameters the syscall wrappers have to save %ebx, %esi,
-   and %edi.  */
-# define EH_FRAME_5(name) \
-    .byte 0x40+L(PUSHDI1)-L(name##START);      /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0x87;                                        /* DW_CFA_offset %edi */      \
-    .uleb128 2;                                                                      \
-    .byte 0x40+L(PUSHSI1)-L(PUSHDI1);          /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 12;                                                             \
-    .byte 0x86;                                        /* DW_CFA_offset %esi */      \
-    .uleb128 3;                                                                      \
-    .byte 0x40+L(PUSHBX1)-L(PUSHSI1);          /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 16;                                                             \
-    .byte 0x83;                                        /* DW_CFA_offset %ebx */      \
-    .uleb128 4;                                                                      \
-    .byte 0x40+L(POPBX1)-L(PUSHBX1);           /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 12;                                                             \
-    .byte 0xc3;                                        /* DW_CFA_restore %ebx */     \
-    .byte 0x40+L(POPSI1)-L(POPBX1);            /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0xc6;                                        /* DW_CFA_restore %esi */     \
-    .byte 0x40+L(POPDI1)-L(POPSI1);            /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 4;                                                                      \
-    .byte 0xc7;                                        /* DW_CFA_restore %edi */     \
-    .byte 0x40+L(PUSHSTATE)-L(POPDI1);         /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0x40+L(PUSHDI2)-L(PUSHSTATE);                /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 12;                                                             \
-    .byte 0x87;                                        /* DW_CFA_offset %edi */      \
-    .uleb128 3;                                                                      \
-    .byte 0x40+L(PUSHSI2)-L(PUSHDI2);          /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 16;                                                             \
-    .byte 0x86;                                        /* DW_CFA_offset %esi */      \
-    .uleb128 4;                                                                      \
-    .byte 0x40+L(PUSHBX2)-L(PUSHSI2);          /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 20;                                                             \
-    .byte 0x83;                                        /* DW_CFA_offset %ebx */      \
-    .uleb128 5;                                                                      \
-    .byte 0x40+L(POPBX2)-L(PUSHBX2);           /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 16;                                                             \
-    .byte 0xc3;                                        /* DW_CFA_restore %ebx */     \
-    .byte 0x40+L(POPSI2)-L(POPBX2);            /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 12;                                                             \
-    .byte 0xc6;                                        /* DW_CFA_restore %esi */     \
-    .byte 0x40+L(POPDI2)-L(POPSI2);            /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 8;                                                                      \
-    .byte 0xc7;                                        /* DW_CFA_restore %edi */     \
-    .byte 0x40+L(POPSTATE)-L(POPDI2);          /* DW_CFA_advance_loc+N */    \
-    .byte 14;                                  /* DW_CFA_def_cfa_offset */   \
-    .uleb128 4
-
-
-# undef ASM_SIZE_DIRECTIVE
-# define ASM_SIZE_DIRECTIVE(name) L(name##END): .size name,.-name;
+  L(pseudo_end):
 
 # define SAVE_OLDTYPE_0        movl %eax, %ecx;
 # define SAVE_OLDTYPE_1        SAVE_OLDTYPE_0
-# define SAVE_OLDTYPE_2        pushl %eax; L(PUSHSTATE):
+# define SAVE_OLDTYPE_2        pushl %eax; cfi_adjust_cfa_offset (4);
 # define SAVE_OLDTYPE_3        SAVE_OLDTYPE_2
 # define SAVE_OLDTYPE_4        SAVE_OLDTYPE_2
 # define SAVE_OLDTYPE_5        SAVE_OLDTYPE_2
 # define _PUSHCARGS_0  /* No arguments to push.  */
 # define _POPCARGS_0   /* No arguments to pop.  */
 
-# define PUSHCARGS_1   movl %ebx, %edx; L(SAVEBX2): PUSHCARGS_0
+# define PUSHCARGS_1   movl %ebx, %edx; cfi_register (ebx, edx); PUSHCARGS_0
 # define DOCARGS_1     _DOARGS_1 (4)
-# define POPCARGS_1    POPCARGS_0; movl %edx, %ebx; L(RESTBX2):
-# define _PUSHCARGS_1  pushl %ebx; L(PUSHBX2): _PUSHCARGS_0
-# define _POPCARGS_1   _POPCARGS_0; popl %ebx; L(POPBX2):
+# define POPCARGS_1    POPCARGS_0; movl %edx, %ebx; cfi_restore (ebx);
+# define _PUSHCARGS_1  pushl %ebx; cfi_adjust_cfa_offset (4); \
+                       cfi_rel_offset (ebx, 0); _PUSHCARGS_0
+# define _POPCARGS_1   _POPCARGS_0; popl %ebx; \
+                       cfi_adjust_cfa_offset (-4); cfi_restore (ebx);
 
 # define PUSHCARGS_2   PUSHCARGS_1
 # define DOCARGS_2     _DOARGS_2 (12)
 # define PUSHCARGS_4   _PUSHCARGS_4
 # define DOCARGS_4     _DOARGS_4 (28)
 # define POPCARGS_4    _POPCARGS_4
-# define _PUSHCARGS_4  pushl %esi; L(PUSHSI2): _PUSHCARGS_3
-# define _POPCARGS_4   _POPCARGS_3; popl %esi; L(POPSI2):
+# define _PUSHCARGS_4  pushl %esi; cfi_adjust_cfa_offset (4); \
+                       cfi_rel_offset (esi, 0); _PUSHCARGS_3
+# define _POPCARGS_4   _POPCARGS_3; popl %esi; \
+                       cfi_adjust_cfa_offset (-4); cfi_restore (esi);
 
 # define PUSHCARGS_5   _PUSHCARGS_5
 # define DOCARGS_5     _DOARGS_5 (36)
 # define POPCARGS_5    _POPCARGS_5
-# define _PUSHCARGS_5  pushl %edi; L(PUSHDI2): _PUSHCARGS_4
-# define _POPCARGS_5   _POPCARGS_4; popl %edi; L(POPDI2):
+# define _PUSHCARGS_5  pushl %edi; cfi_adjust_cfa_offset (4); \
+                       cfi_rel_offset (edi, 0); _PUSHCARGS_4
+# define _POPCARGS_5   _POPCARGS_4; popl %edi; \
+                       cfi_adjust_cfa_offset (-4); cfi_restore (edi);
 
 # ifdef IS_IN_libpthread
 #  define CENABLE      call __pthread_enable_asynccancel;
 #  error Unsupported library
 # endif
 # define POPSTATE_0 \
- pushl %eax; L(PUSHSTATE): movl %ecx, %eax; CDISABLE; popl %eax; L(POPSTATE):
+ pushl %eax; cfi_adjust_cfa_offset (4); movl %ecx, %eax; \
+ CDISABLE; popl %eax; cfi_adjust_cfa_offset (-4);
 # define POPSTATE_1    POPSTATE_0
-# define POPSTATE_2    xchgl (%esp), %eax; CDISABLE; popl %eax; L(POPSTATE):
+# define POPSTATE_2    xchgl (%esp), %eax; CDISABLE; popl %eax; \
+                       cfi_adjust_cfa_offset (-4);
 # define POPSTATE_3    POPSTATE_2
 # define POPSTATE_4    POPSTATE_3
 # define POPSTATE_5    POPSTATE_4
index f43a475..c7a5ce7 100644 (file)
@@ -1,6 +1,6 @@
 /* Add two limb vectors of the same length > 0 and store sum in a third
    limb vector.
-   Copyright (C) 1992, 94, 95, 97, 98, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,94,95,97,98,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -34,10 +34,14 @@ ENTRY (BP_SYM (__mpn_add_n))
        ENTER
 
        pushl %edi
+       cfi_adjust_cfa_offset (4)
        pushl %esi
+       cfi_adjust_cfa_offset (4)
 
        movl RES(%esp),%edi
+       cfi_rel_offset (edi, 4)
        movl S1(%esp),%esi
+       cfi_rel_offset (esi, 0)
        movl S2(%esp),%edx
        movl SIZE(%esp),%ecx
 #if __BOUNDED_POINTERS__
@@ -62,10 +66,12 @@ ENTRY (BP_SYM (__mpn_add_n))
 /* Calculate start address in loop for PIC.  Due to limitations in some
    assemblers, Loop-L0-3 cannot be put into the leal */
        call    L(0)
+       cfi_adjust_cfa_offset (4)
 L(0):  leal    (%eax,%eax,8),%eax
        addl    (%esp),%eax
        addl    $(L(oop)-L(0)-3),%eax
        addl    $4,%esp
+       cfi_adjust_cfa_offset (-4)
 #else
 /* Calculate start address in loop for non-PIC.  */
        leal    (L(oop) - 3)(%eax,%eax,8),%eax
@@ -106,7 +112,11 @@ L(oop):    movl    (%esi),%eax
        negl    %eax
 
        popl %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index fb1042e..23c3f59 100644 (file)
@@ -1,6 +1,6 @@
 /* i80386 __mpn_addmul_1 -- Multiply a limb vector with a limb and add
    the result to a second limb vector.
-   Copyright (C) 1992, 1994, 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,1994,1997,1998,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -39,14 +39,21 @@ ENTRY (BP_SYM (__mpn_addmul_1))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp), %res_ptr
+       cfi_rel_offset (res_ptr, 12)
        movl    S1(%esp), %s1_ptr
+       cfi_rel_offset (s1_ptr, 8)
        movl    SIZE(%esp), %sizeP
        movl    S2LIMB(%esp), %s2_limb
+       cfi_rel_offset (s2_limb, 0)
 #if __BOUNDED_POINTERS__
        shll    $2, %sizeP      /* convert limbs to bytes */
        CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
@@ -57,6 +64,7 @@ ENTRY (BP_SYM (__mpn_addmul_1))
        leal    (%s1_ptr,%sizeP,4), %s1_ptr
        negl    %sizeP
        xorl    %ebp, %ebp
+       cfi_rel_offset (ebp, 4)
        ALIGN (3)
 L(oop):
        movl    (%s1_ptr,%sizeP,4), %eax
@@ -72,9 +80,17 @@ L(oop):
        movl    %ebp, %eax
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index ea242d1..b6934dc 100644 (file)
@@ -1,5 +1,5 @@
 /* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.  i386 version.
-   Copyright (C) 1994,1995,1996,1997,2000,2001 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997,2000,2001,2005 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
@@ -50,9 +50,13 @@ ENTRY (BP_SYM (setjmp))
 
        /* Call __sigjmp_save.  */
        pushl $1
+       cfi_adjust_cfa_offset (4)
        pushl 8(%esp)
+       cfi_adjust_cfa_offset (4)
        call BP_SYM (__sigjmp_save)
        popl %ecx
+       cfi_adjust_cfa_offset (-4)
        popl %edx
+       cfi_adjust_cfa_offset (-4)
        ret
 END (BP_SYM (setjmp))
index 72a85b1..c421791 100644 (file)
@@ -1,5 +1,5 @@
 /* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.  i386 version.
-   Copyright (C) 1995-1997,2000,2001,2002,2003 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997,2000-2003,2005 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
@@ -50,7 +50,9 @@ ENTRY (BP_SYM (setjmp))
 
        /* Call __sigjmp_save.  */
        pushl $1
+       cfi_adjust_cfa_offset (4)
        pushl 8(%esp)
+       cfi_adjust_cfa_offset (4)
 #ifdef PIC
        /* We cannot use the PLT, because it requires that %ebx be set, but
            we can't save and restore our caller's value.  Instead, we do an
@@ -64,7 +66,9 @@ ENTRY (BP_SYM (setjmp))
        call BP_SYM (__sigjmp_save)
 #endif
        popl %ecx
+       cfi_adjust_cfa_offset (-4)
        popl %edx
+       cfi_adjust_cfa_offset (-4)
        ret
 END (BP_SYM (setjmp))
 
index 71c1ab5..302ca77 100644 (file)
@@ -7,20 +7,20 @@ ldouble: 1
 
 # asin
 Test "asin (-0.5) == -pi/6":
-ldouble: 1
 ildouble: 1
-Test "asin (-1.0) == -pi/2":
 ldouble: 1
+Test "asin (-1.0) == -pi/2":
 ildouble: 1
-Test "asin (0.5) == pi/6":
 ldouble: 1
+Test "asin (0.5) == pi/6":
 ildouble: 1
-Test "asin (0.75) == 0.848062078981481008052944338998418080":
 ldouble: 1
+Test "asin (0.75) == 0.848062078981481008052944338998418080":
 ildouble: 1
-Test "asin (1.0) == pi/2":
 ldouble: 1
+Test "asin (1.0) == pi/2":
 ildouble: 1
+ldouble: 1
 
 # atanh
 Test "atanh (0.75) == 0.972955074527656652552676371721589865":
@@ -44,11 +44,11 @@ ildouble: 6
 ldouble: 6
 Test "Imaginary part of: cacosh (-2 - 3 i) == -1.9833870299165354323470769028940395 + 2.1414491111159960199416055713254211 i":
 double: 1
+float: 4
 idouble: 1
+ifloat: 4
 ildouble: 1
 ldouble: 1
-ifloat: 4
-float: 4
 Test "Real part of: cacosh (0.75 + 1.25 i) == 1.13239363160530819522266333696834467 + 1.11752014915610270578240049553777969 i":
 ildouble: 1
 ldouble: 1
@@ -473,24 +473,26 @@ float: 1
 # j0
 Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "j0 (10.0) == -0.245935764451348335197760862485328754":
-double: 1
+double: 3
 float: 1
-idouble: 1
+idouble: 3
 ifloat: 1
 Test "j0 (2.0) == 0.223890779141235668051827454649948626":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "j0 (8.0) == 0.171650807137553906090869407851972001":
@@ -498,22 +500,21 @@ float: 1
 ifloat: 1
 
 # j1
+Test "j1 (0.75) == 0.349243602174862192523281016426251335":
+double: 1
+idouble: 1
 Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
 float: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
-double: 1
-idouble: 1
 Test "j1 (2.0) == 0.576724807756873387202448242269137087":
 double: 1
 idouble: 1
-Test "j1 (0.75) == 0.349243602174862192523281016426251335":
-double: 1
-idouble: 1
 Test "j1 (8.0) == 0.234636346853914624381276651590454612":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
@@ -521,24 +522,26 @@ ldouble: 1
 # jn
 Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
-double: 1
+double: 3
 float: 1
-idouble: 1
+idouble: 3
 ifloat: 1
 Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
@@ -556,22 +559,24 @@ Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
 double: 1
 idouble: 1
 Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "jn (10, -1.0) == 0.263061512368745320699785368779050294e-9":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
-ifloat: 1
-float: 1
 Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
-float: 1
-ifloat: 1
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
 float: 1
 ifloat: 1
@@ -579,46 +584,46 @@ ildouble: 2
 ldouble: 2
 Test "jn (10, 1.0) == 0.263061512368745320699785368779050294e-9":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 ildouble: 1
 ldouble: 1
-ifloat: 1
-float: 1
 Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
-double: 2
+double: 5
 float: 2
-idouble: 2
+idouble: 5
 ifloat: 2
 ildouble: 2
 ldouble: 2
 Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
+double: 2
+idouble: 2
 ildouble: 1
 ldouble: 1
-idouble: 2
-double: 2
 Test "jn (3, -1.0) == -0.0195633539826684059189053216217515083":
 ildouble: 1
 ldouble: 1
 Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
-float: 1
-ifloat: 1
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 Test "jn (3, 1.0) == 0.0195633539826684059189053216217515083":
 ildouble: 1
 ldouble: 1
 Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
-double: 1
+double: 5
 float: 2
-idouble: 1
+idouble: 5
 ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
-ildouble: 1
-ldouble: 1
 double: 1
 idouble: 1
+ildouble: 1
+ldouble: 1
 
 # lgamma
 Test "lgamma (-0.5) == log(2*sqrt(pi))":
@@ -627,10 +632,10 @@ idouble: 1
 ildouble: 1
 ldouble: 1
 Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
-float: 1
-ifloat: 1
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
 double: 1
 float: 2
@@ -714,32 +719,39 @@ float: 1
 idouble: 1
 ifloat: 1
 Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
+double: 2
+float: 1
+idouble: 2
+ifloat: 1
 ildouble: 1
 ldouble: 1
-ifloat: 1
+Test "y0 (1.5) == 0.382448923797758843955068554978089862":
+double: 1
 float: 1
-double: 2
-idouble: 2
+idouble: 1
+ifloat: 1
 Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "y0 (8.0) == 0.223521489387566220527323400498620359":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
-Test "y0 (1.5) == 0.382448923797758843955068554978089862":
-float: 1
-ifloat: 1
-double: 1
-idouble: 1
 
 # y1
 Test "y1 (0.125) == -5.19993611253477499595928744876579921":
 ildouble: 1
 ldouble: 1
+Test "y1 (1.0) == -0.781212821300288716547150000047964821":
+double: 1
+idouble: 1
 Test "y1 (10.0) == 0.249015424206953883923283474663222803":
 double: 2
 float: 2
@@ -753,13 +765,12 @@ ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "y1 (8.0) == -0.158060461731247494255555266187483550":
+double: 1
 float: 2
+idouble: 1
 ifloat: 2
 ildouble: 1
 ldouble: 1
-Test "y1 (1.0) == -0.781212821300288716547150000047964821":
-double: 1
-idouble: 1
 
 # yn
 Test "yn (0, 0.125) == -1.38968062514384052915582277745018693":
@@ -771,24 +782,28 @@ float: 1
 idouble: 1
 ifloat: 1
 Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
-ildouble: 1
-ldouble: 1
-ifloat: 1
-float: 1
 double: 2
+float: 1
 idouble: 2
-Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
 ifloat: 1
-float: 1
+ildouble: 1
+ldouble: 1
+Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
 Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 ildouble: 1
 ldouble: 1
@@ -796,8 +811,8 @@ Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
 ildouble: 1
 ldouble: 1
 Test "yn (1, 1.0) == -0.781212821300288716547150000047964821":
-idouble: 1
 double: 1
+idouble: 1
 Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
 double: 2
 float: 2
@@ -811,13 +826,12 @@ ifloat: 2
 ildouble: 1
 ldouble: 1
 Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
+double: 1
 float: 2
+idouble: 1
 ifloat: 2
 ildouble: 1
 ldouble: 1
-Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
-ifloat: 1
-float: 1
 Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
 double: 1
 float: 1
@@ -841,10 +855,10 @@ float: 3
 idouble: 1
 ifloat: 3
 Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
-float: 3
-ifloat: 3
 double: 2
+float: 3
 idouble: 2
+ifloat: 3
 Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
 ildouble: 1
 ldouble: 1
@@ -855,12 +869,12 @@ idouble: 1
 ifloat: 1
 ildouble: 2
 ldouble: 2
-Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
-float: 1
-ifloat: 1
+Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
 double: 1
+float: 1
 idouble: 1
-Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
+ifloat: 1
+Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
 double: 1
 float: 1
 idouble: 1
@@ -872,8 +886,8 @@ ildouble: 622
 ldouble: 622
 
 Function: "asin":
-ldouble: 1
 ildouble: 1
+ldouble: 1
 
 Function: "atanh":
 ildouble: 2
@@ -895,11 +909,11 @@ ldouble: 6
 
 Function: Imaginary part of "cacosh":
 double: 1
+float: 4
 idouble: 1
+ifloat: 4
 ildouble: 1
 ldouble: 1
-ifloat: 4
-float: 4
 
 Function: Real part of "casin":
 double: 1
@@ -1115,10 +1129,10 @@ Function: "hypot":
 float: 1
 
 Function: "j0":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
+double: 3
+float: 2
+idouble: 3
+ifloat: 2
 ildouble: 1
 ldouble: 1
 
@@ -1131,9 +1145,9 @@ ildouble: 1
 ldouble: 1
 
 Function: "jn":
-double: 2
+double: 5
 float: 2
-idouble: 2
+idouble: 5
 ifloat: 2
 ildouble: 2
 ldouble: 2
index 7d8279f..ec7d4c8 100644 (file)
@@ -1,6 +1,6 @@
 /* strcat(dest, src) -- Append SRC on the end of DEST.
    For Intel 80x86, x>=4.
-   Copyright (C) 1994,1995,1996,1997,2000,2003 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997,2000,2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>.
    Optimised a little by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -35,6 +35,7 @@ ENTRY (BP_SYM (strcat))
        ENTER
 
        pushl %edi              /* Save callee-safe register.  */
+       cfi_adjust_cfa_offset (4)
 
        movl DEST(%esp), %edx
        movl SRC(%esp), %ecx
@@ -66,6 +67,7 @@ ENTRY (BP_SYM (strcat))
        /* Now we are aligned.  Begin scan loop.  */
        jmp L(1)
 
+       cfi_rel_offset (edi, 0)
        ALIGN(4)
 
 L(4):  addl $16,%edx           /* increment destination pointer for round */
@@ -263,6 +265,8 @@ L(8):       /* GKM FIXME: check high bounds */
        movl DEST(%esp), %eax   /* start address of destination is result */
        RETURN_BOUNDED_POINTER (DEST(%esp))
        popl %edi               /* restore saved register */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
index c2afc37..57706b2 100644 (file)
@@ -1,6 +1,6 @@
 /* Pentium __mpn_add_n -- Add two limb vectors of the same length > 0 and store
    sum in a third limb vector.
-   Copyright (C) 1992, 94, 95, 96, 97, 98, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,94,95,96,97,98,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -34,13 +34,20 @@ ENTRY (BP_SYM (__mpn_add_n))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp),%edi
+       cfi_rel_offset (edi, 12)
        movl    S1(%esp),%esi
+       cfi_rel_offset (esi, 8)
        movl    S2(%esp),%ebx
+       cfi_rel_offset (ebx, 0)
        movl    SIZE(%esp),%ecx
 #if __BOUNDED_POINTERS__
        shll    $2, %ecx                /* convert limbs to bytes */
@@ -50,6 +57,7 @@ ENTRY (BP_SYM (__mpn_add_n))
        shrl    $2, %ecx
 #endif
        movl    (%ebx),%ebp
+       cfi_rel_offset (ebp, 4)
 
        decl    %ecx
        movl    %ecx,%edx
@@ -58,6 +66,7 @@ ENTRY (BP_SYM (__mpn_add_n))
        testl   %ecx,%ecx               /* zero carry flag */
        jz      L(end)
        pushl   %edx
+       cfi_adjust_cfa_offset (4)
 
        ALIGN (3)
 L(oop):        movl    28(%edi),%eax           /* fetch destination cache line */
@@ -105,6 +114,7 @@ L(4):       movl    24(%esi),%eax
        jnz     L(oop)
 
        popl    %edx
+       cfi_adjust_cfa_offset (-4)
 L(end):
        decl    %edx                    /* test %edx w/o clobbering carry */
        js      L(end2)
@@ -128,9 +138,17 @@ L(end2):
        negl    %eax
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index 9329637..18955e3 100644 (file)
@@ -1,6 +1,6 @@
 /* Pentium __mpn_addmul_1 -- Multiply a limb vector with a limb and add
    the result to a second limb vector.
-   Copyright (C) 1992, 94, 96, 97, 98, 00 Free Software Foundation, Inc.
+   Copyright (C) 1992, 94, 96, 97, 98, 00, 2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -39,14 +39,21 @@ ENTRY (BP_SYM (__mpn_addmul_1))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp), %res_ptr
+       cfi_rel_offset (res_ptr, 12)
        movl    S1(%esp), %s1_ptr
+       cfi_rel_offset (s1_ptr, 8)
        movl    SIZE(%esp), %size
        movl    S2LIMB(%esp), %s2_limb
+       cfi_rel_offset (s2_limb, 0)
 #if __BOUNDED_POINTERS__
        shll    $2, %size       /* convert limbs to bytes */
        CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
@@ -57,6 +64,7 @@ ENTRY (BP_SYM (__mpn_addmul_1))
        leal    (%s1_ptr,%size,4), %s1_ptr
        negl    %size
        xorl    %ebp, %ebp
+       cfi_rel_offset (ebp, 4)
        ALIGN (3)
 
 L(oop):        adcl    $0, %ebp
@@ -79,9 +87,17 @@ L(oop):      adcl    $0, %ebp
        adcl    $0, %ebp
        movl    %ebp, %eax
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index 59d5879..bc73ee6 100644 (file)
@@ -1,5 +1,5 @@
 /* Pentium optimized __mpn_lshift --
-   Copyright (C) 1992, 94, 95, 96, 97, 98, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,94,95,96,97,98,2000,2005 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
@@ -33,13 +33,21 @@ ENTRY (BP_SYM (__mpn_lshift))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (ebp, 0)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp),%edi
+       cfi_rel_offset (edi, 12)
        movl    S(%esp),%esi
+       cfi_rel_offset (esi, 8)
        movl    SIZE(%esp),%ebx
+       cfi_rel_offset (ebx, 0)
        movl    CNT(%esp),%ecx
 #if __BOUNDED_POINTERS__
        shll    $2, %ebx                /* convert limbs to bytes */
@@ -67,9 +75,11 @@ L(normal):
        xorl    %eax,%eax
        shldl   %cl,%edx,%eax           /* compute carry limb */
        pushl   %eax                    /* push carry limb onto stack */
+       cfi_adjust_cfa_offset (4)
 
        decl    %ebx
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
        shrl    $3,%ebx
        jz      L(end)
 
@@ -113,6 +123,7 @@ L(oop):     movl    -28(%edi),%eax          /* fetch destination cache line */
        jnz     L(oop)
 
 L(end):        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
        andl    $7,%ebx
        jz      L(end2)
 L(oop2):
@@ -130,11 +141,20 @@ L(end2):
        movl    %edx,(%edi)             /* store it */
 
        popl    %eax                    /* pop carry limb */
+       cfi_adjust_cfa_offset (-4)
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
@@ -144,12 +164,18 @@ L(end2):
    function is documented to work for overlapping source and destination.
 */
 
+       cfi_adjust_cfa_offset (16)
+       cfi_rel_offset (edi, 12)
+       cfi_rel_offset (esi, 8)
+       cfi_rel_offset (ebp, 4)
+       cfi_rel_offset (ebx, 0)
 L(special):
        movl    (%esi),%edx
        addl    $4,%esi
 
        decl    %ebx
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
        shrl    $3,%ebx
 
        addl    %edx,%edx
@@ -199,6 +225,7 @@ L(Loop):
 
 L(Lend):
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
        sbbl    %eax,%eax               /* save carry in %eax */
        andl    $7,%ebx
        jz      L(Lend2)
@@ -223,9 +250,17 @@ L(L1):     movl    %edx,(%edi)             /* store last limb */
        negl    %eax
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index d8181ff..1fa267e 100644 (file)
@@ -1,5 +1,5 @@
 /* Highly optimized version for i586.
-   Copyright (C) 1997, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2000, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -39,10 +39,14 @@ ENTRY (BP_SYM (memcpy))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
 
        movl    DEST(%esp), %edi
+       cfi_rel_offset (edi, 4)
        movl    SRC(%esp), %esi
+       cfi_rel_offset (esi, 4)
        movl    LEN(%esp), %ecx
        CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
        CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
@@ -111,7 +115,11 @@ L(1):      rep; movsb
 #endif
 
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
index 0b59849..c21e9f7 100644 (file)
@@ -1,6 +1,6 @@
 /* memset/bzero -- set memory area to CH/0
    Highly optimized version for ix86, x>=5.
-   Copyright (C) 1996, 1997, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2000, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Torbjorn Granlund, <tege@matematik.su.se>
 
@@ -42,8 +42,10 @@ ENTRY (BP_SYM (memset))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
 
        movl    DEST(%esp), %edi
+       cfi_rel_offset (edi, 0)
        movl    LEN(%esp), %edx
        CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %edx)
 #if BZERO_P
@@ -106,6 +108,8 @@ L(2):       shrl    $2, %ecx        /* convert byte count to longword count */
        RETURN_BOUNDED_POINTER (DEST(%esp))
 #endif
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
 #if BZERO_P
index f786569..b537c70 100644 (file)
@@ -1,6 +1,6 @@
 /* Pentium __mpn_mul_1 -- Multiply a limb vector with a limb and store
    the result in a second limb vector.
-   Copyright (C) 1992, 94, 96, 97, 98, 00 Free Software Foundation, Inc.
+   Copyright (C) 1992, 94, 96, 97, 98, 00, 2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -39,14 +39,21 @@ ENTRY (BP_SYM (__mpn_mul_1))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp), %res_ptr
+       cfi_rel_offset (res_ptr, 12)
        movl    S1(%esp), %s1_ptr
+       cfi_rel_offset (s1_ptr, 8)
        movl    SIZE(%esp), %size
        movl    S2LIMB(%esp), %s2_limb
+       cfi_rel_offset (s2_limb, 0)
 #if __BOUNDED_POINTERS__
        shll    $2, %size       /* convert limbs to bytes */
        CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
@@ -57,6 +64,7 @@ ENTRY (BP_SYM (__mpn_mul_1))
        leal    (%s1_ptr,%size,4), %s1_ptr
        negl    %size
        xorl    %ebp, %ebp
+       cfi_rel_offset (ebp, 4)
        ALIGN (3)
 
 L(oop):        adcl    $0, %ebp
@@ -75,9 +83,17 @@ L(oop):      adcl    $0, %ebp
        adcl    $0, %ebp
        movl    %ebp, %eax
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index db9326a..29eded3 100644 (file)
@@ -1,5 +1,5 @@
 /* Pentium optimized __mpn_rshift --
-   Copyright (C) 1992, 94, 95, 96, 97, 98, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,94,95,96,97,98,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -33,13 +33,21 @@ ENTRY (BP_SYM (__mpn_rshift))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (ebp, 0)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp),%edi
+       cfi_rel_offset (edi, 12)
        movl    S(%esp),%esi
+       cfi_rel_offset (esi, 8)
        movl    SIZE(%esp),%ebx
+       cfi_rel_offset (ebx, 0)
        movl    CNT(%esp),%ecx
 #if __BOUNDED_POINTERS__
        shll    $2, %ebx                /* convert limbs to bytes */
@@ -64,9 +72,11 @@ L(normal):
        xorl    %eax,%eax
        shrdl   %cl,%edx,%eax           /* compute carry limb */
        pushl   %eax                    /* push carry limb onto stack */
+       cfi_adjust_cfa_offset (4)
 
        decl    %ebx
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
        shrl    $3,%ebx
        jz      L(end)
 
@@ -110,6 +120,7 @@ L(oop):     movl    28(%edi),%eax           /* fetch destination cache line */
        jnz     L(oop)
 
 L(end):        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
        andl    $7,%ebx
        jz      L(end2)
 L(oop2):
@@ -127,11 +138,20 @@ L(end2):
        movl    %edx,(%edi)             /* store it */
 
        popl    %eax                    /* pop carry limb */
+       cfi_adjust_cfa_offset (-4)
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
@@ -141,6 +161,11 @@ L(end2):
    function is documented to work for overlapping source and destination.
 */
 
+       cfi_adjust_cfa_offset (16)
+       cfi_rel_offset (edi, 12)
+       cfi_rel_offset (esi, 8)
+       cfi_rel_offset (ebp, 4)
+       cfi_rel_offset (ebx, 3)
 L(special):
        leal    -4(%edi,%ebx,4),%edi
        leal    -4(%esi,%ebx,4),%esi
@@ -150,6 +175,7 @@ L(special):
 
        decl    %ebx
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
        shrl    $3,%ebx
 
        shrl    $1,%edx
@@ -199,6 +225,7 @@ L(Loop):
 
 L(Lend):
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
        sbbl    %eax,%eax               /* save carry in %eax */
        andl    $7,%ebx
        jz      L(Lend2)
@@ -223,9 +250,17 @@ L(L1):     movl    %edx,(%edi)             /* store last limb */
        rcrl    $1,%eax
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index 9df504d..136b19a 100644 (file)
@@ -1,6 +1,6 @@
 /* Find character CH in a NUL terminated string.
    Highly optimized version for ix85, x>=5.
-   Copyright (C) 1995, 1996, 1997, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,2000,2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
 
@@ -47,16 +47,21 @@ ENTRY (BP_SYM (strchr))
        ENTER
 
        pushl %edi              /* Save callee-safe registers.  */
+       cfi_adjust_cfa_offset (-4)
        pushl %esi
+       cfi_adjust_cfa_offset (-4)
 
        pushl %ebx
+       cfi_adjust_cfa_offset (-4)
        pushl %ebp
+       cfi_adjust_cfa_offset (-4)
 
        movl STR(%esp), %eax
        movl CHR(%esp), %edx
        CHECK_BOUNDS_LOW (%eax, STR(%esp))
 
        movl %eax, %edi         /* duplicate string pointer for later */
+       cfi_rel_offset (edi, 12)
        xorl %ecx, %ecx         /* clear %ecx */
 
        /* At the moment %edx contains C.  What we need for the
@@ -107,6 +112,10 @@ L(0):      movb (%eax), %cl        /* load single byte */
 
        incl %eax               /* increment pointer */
 
+       cfi_rel_offset (esi, 8)
+       cfi_rel_offset (ebx, 4)
+       cfi_rel_offset (ebp, 0)
+
        /* The following code is the preparation for the loop.  The
           four instruction up to `L1' will not be executed in the loop
           because the same code is found at the end of the loop, but
@@ -283,15 +292,28 @@ L(5):     subl $4, %eax           /* adjust pointer */
 
 L(2):  CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
        RETURN_BOUNDED_POINTER (STR(%esp))
-       popl %ebp               /* restore saved registers */
+L(out):        popl %ebp               /* restore saved registers */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
 
        popl %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
 
+       cfi_adjust_cfa_offset (16)
+       cfi_rel_offset (edi, 12)
+       cfi_rel_offset (esi, 8)
+       cfi_rel_offset (ebx, 4)
+       cfi_rel_offset (ebp, 0)
        /* We know there is a NUL byte in the word.  But we have to test
           whether there is an C byte before it in the word.  */
 L(4):  subl $4, %eax           /* adjust pointer */
@@ -327,14 +349,7 @@ L(4):      subl $4, %eax           /* adjust pointer */
 
 L(3):  xorl %eax, %eax
        RETURN_NULL_BOUNDED_POINTER
-       popl %ebp               /* restore saved registers */
-       popl %ebx
-
-       popl %esi
-       popl %edi
-
-       LEAVE
-       RET_PTR
+       jmp L(out)
 END (BP_SYM (strchr))
 
 #undef index
index f7c1986..5426e59 100644 (file)
@@ -1,5 +1,5 @@
 /* strcpy/stpcpy implementation for i586.
-   Copyright (C) 1997, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1997, 2000, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -39,11 +39,16 @@ ENTRY (BP_SYM (STRCPY))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    DEST(%esp), %edi
+       cfi_rel_offset (edi, 8)
        movl    SRC(%esp), %esi
+       cfi_rel_offset (esi, 4)
        CHECK_BOUNDS_LOW (%edi, DEST(%esp))
        CHECK_BOUNDS_LOW (%esi, SRC(%esp))
 
@@ -51,11 +56,14 @@ ENTRY (BP_SYM (STRCPY))
        leal    -1(%esi), %ecx
 
        movl    $magic, %ebx
+       cfi_rel_offset (ebx, 0)
        andl    $3, %ecx
 
 #ifdef PIC
        call    2f
+       cfi_adjust_cfa_offset (4)
 2:     popl    %edx
+       cfi_adjust_cfa_offset (-4)
        /* 0xb is the distance between 2: and 1: but we avoid writing
           1f-2b because the assembler generates worse code.  */
        leal    0xb(%edx,%ecx,8), %ecx
@@ -153,8 +161,14 @@ L(end2):
 #endif
        RETURN_BOUNDED_POINTER (DEST(%esp))
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
index fcc9cba..1c40a80 100644 (file)
@@ -1,6 +1,6 @@
 /* Pentium __mpn_sub_n -- Subtract two limb vectors of the same length > 0
    and store difference in a third limb vector.
-   Copyright (C) 1992, 94, 95, 96, 97, 98, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,94,95,96,97,98,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -34,13 +34,20 @@ ENTRY (BP_SYM (__mpn_sub_n))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp),%edi
+       cfi_rel_offset (edi, 12)
        movl    S1(%esp),%esi
+       cfi_rel_offset (esi, 8)
        movl    S2(%esp),%ebx
+       cfi_rel_offset (ebx, 0)
        movl    SIZE(%esp),%ecx
 #if __BOUNDED_POINTERS__
        shll    $2, %ecx        /* convert limbs to bytes */
@@ -49,6 +56,7 @@ ENTRY (BP_SYM (__mpn_sub_n))
        CHECK_BOUNDS_BOTH_WIDE (%ebx, S2(%esp), %ecx)
        shrl    $2, %ecx
 #endif
+       cfi_rel_offset (ebp, 4)
        movl    (%ebx),%ebp
 
        decl    %ecx
@@ -58,6 +66,7 @@ ENTRY (BP_SYM (__mpn_sub_n))
        testl   %ecx,%ecx               /* zero carry flag */
        jz      L(end)
        pushl   %edx
+       cfi_adjust_cfa_offset (4)
 
        ALIGN (3)
 L(oop):        movl    28(%edi),%eax           /* fetch destination cache line */
@@ -105,6 +114,7 @@ L(4):       movl    24(%esi),%eax
        jnz     L(oop)
 
        popl    %edx
+       cfi_adjust_cfa_offset (-4)
 L(end):
        decl    %edx                    /* test %edx w/o clobbering carry */
        js      L(end2)
@@ -128,9 +138,17 @@ L(end2):
        negl    %eax
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index 5422001..b9e578f 100644 (file)
@@ -1,6 +1,6 @@
 /* Pentium __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
    the result from a second limb vector.
-   Copyright (C) 1992, 94, 96, 97, 98, 00 Free Software Foundation, Inc.
+   Copyright (C) 1992, 94, 96, 97, 98, 00, 2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -39,14 +39,21 @@ ENTRY (BP_SYM (__mpn_submul_1))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp), %res_ptr
+       cfi_rel_offset (res_ptr, 12)
        movl    S1(%esp), %s1_ptr
+       cfi_rel_offset (s1_ptr, 8)
        movl    SIZE(%esp), %size
        movl    S2LIMB(%esp), %s2_limb
+       cfi_rel_offset (s2_limb, 0)
 #if __BOUNDED_POINTERS__
        shll    $2, %sizeP      /* convert limbs to bytes */
        CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
@@ -57,6 +64,7 @@ ENTRY (BP_SYM (__mpn_submul_1))
        leal    (%s1_ptr,%size,4), %s1_ptr
        negl    %size
        xorl    %ebp, %ebp
+       cfi_rel_offset (ebp, 4)
        ALIGN (3)
 
 L(oop):        adcl    $0, %ebp
@@ -79,9 +87,17 @@ L(oop):      adcl    $0, %ebp
        adcl    $0, %ebp
        movl    %ebp, %eax
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index e36b0d0..3cce33a 100644 (file)
@@ -1,6 +1,6 @@
 /* Add two limb vectors of the same length > 0 and store sum in a third
    limb vector.
-   Copyright (C) 1992, 94, 95, 97, 98, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,94,95,97,98,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -38,10 +38,14 @@ ENTRY (BP_SYM (__mpn_add_n))
        ENTER
 
        pushl %edi
+       cfi_adjust_cfa_offset (4)
        pushl %esi
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp),%edi
+       cfi_rel_offset (edi, 4)
        movl    S1(%esp),%esi
+       cfi_rel_offset (esi, 0)
        movl    S2(%esp),%edx
        movl    SIZE(%esp),%ecx
 #if __BOUNDED_POINTERS__
@@ -107,7 +111,11 @@ L(oop):    movl    (%esi),%eax
        negl    %eax
 
        popl %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index 29aa546..4f1c741 100644 (file)
 #define BLK1           PARMS
 #define BLK2           BLK1+PTR_SIZE
 #define LEN            BLK2+PTR_SIZE
-#define ENTRANCE       pushl %ebx; ENTER
-#define RETURN         popl %ebx; LEAVE; ret
+#define ENTRANCE       pushl %ebx; cfi_adjust_cfa_offset (4); \
+                       cfi_rel_offset (ebx, 0); ENTER
+#define RETURN         popl %ebx; cfi_adjust_cfa_offset (-4); \
+                       cfi_restore (ebx); LEAVE; ret
 
 /* Load an entry in a jump table into EBX.  TABLE is a jump table
    with relative offsets.  INDEX is a register contains the index
@@ -81,7 +83,9 @@ L(not_1):
        jl      L(bye)                  /* LEN == 0  */
 
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        movl    %eax, %esi
+       cfi_rel_offset (esi, 0)
        cmpl    $32, %ecx;
        jge     L(32bytesormore)        /* LEN => 32  */
 
@@ -128,9 +132,13 @@ L(4bytes):
        jne     L(find_diff)
 L(0bytes):
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        xorl    %eax, %eax
        RETURN
 
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (esi, 0)
 L(29bytes):
        movl    -29(%esi), %eax
        movl    -29(%edx), %ecx
@@ -171,9 +179,13 @@ L(1bytes):
        cmpb    -1(%edx), %al
        jne     L(set)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        xorl    %eax, %eax
        RETURN
 
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (esi, 0)
 L(30bytes):
        movl    -30(%esi), %eax
        movl    -30(%edx), %ecx
@@ -217,9 +229,13 @@ L(2bytes):
        cmpl    %ecx, %eax
        jne     L(set)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        xorl    %eax, %eax
        RETURN
 
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (esi, 0)
 L(31bytes):
        movl    -31(%esi), %eax
        movl    -31(%edx), %ecx
@@ -266,9 +282,13 @@ L(3bytes):
        cmpb    -1(%edx), %al
        jne     L(set)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        xorl    %eax, %eax
        RETURN
 
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (esi, 0)
        ALIGN (4)
 /* ECX >= 32.  */
 L(32bytesormore):
@@ -349,6 +369,8 @@ L(set):
        sbbl    %eax, %eax
        sbbl    $-1, %eax
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        RETURN
 END (BP_SYM (memcmp))
 
index 951e139..a433622 100644 (file)
@@ -1,7 +1,7 @@
 /* Copy memory block and return pointer to beginning of destination block
    For Intel 80x86, x>=6.
    This file is part of the GNU C Library.
-   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 2003.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -42,11 +42,14 @@ ENTRY (BP_SYM (memmove))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
 
        movl    LEN(%esp), %ecx
        movl    DEST(%esp), %edi
+       cfi_rel_offset (edi, 0)
        movl    %esi, %edx
        movl    SRC(%esp), %esi
+       cfi_register (esi, edx)
        CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
        CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
 
@@ -65,10 +68,13 @@ ENTRY (BP_SYM (memmove))
 2:     rep
        movsl
        movl    %edx, %esi
+       cfi_restore (esi)
        movl    DEST(%esp), %eax
        RETURN_BOUNDED_POINTER (DEST(%esp))
 
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
@@ -90,11 +96,14 @@ ENTRY (BP_SYM (memmove))
        rep
        movsl
        movl    %edx, %esi
+       cfi_restore (esi)
        movl    DEST(%esp), %eax
        RETURN_BOUNDED_POINTER (DEST(%esp))
 
        cld
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
index 843a358..6437e4a 100644 (file)
@@ -1,7 +1,7 @@
 /* Copy memory block and return pointer to following byte.
    For Intel 80x86, x>=6.
    This file is part of the GNU C Library.
-   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1998,1999,2000,2002,2004,2005 Free Software Foundation, Inc.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -43,9 +43,11 @@ ENTRY (BP_SYM (__mempcpy))
 
        movl    LEN(%esp), %ecx
        movl    %edi, %eax
+       cfi_register (edi, eax)
        movl    DEST(%esp), %edi
        CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
        movl    %esi, %edx
+       cfi_register (esi, edx)
        movl    SRC(%esp), %esi
        CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
        cld
@@ -58,7 +60,9 @@ ENTRY (BP_SYM (__mempcpy))
 2:     rep
        movsl
        xchgl   %edi, %eax
+       cfi_restore (edi)
        movl    %edx, %esi
+       cfi_restore (esi)
        RETURN_BOUNDED_POINTER (DEST(%esp))
 
        LEAVE
index 0b47547..5ea50ef 100644 (file)
@@ -51,6 +51,7 @@ ENTRY (BP_SYM (memset))
 
        cld
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        movl    DEST(%esp), %edx
        movl    LEN(%esp), %ecx
        CHECK_BOUNDS_BOTH_WIDE (%edx, DEST(%esp), %ecx)
@@ -61,6 +62,7 @@ ENTRY (BP_SYM (memset))
 #endif
        jecxz   1f
        movl    %edx, %edi
+       cfi_rel_offset (edi, 0)
        andl    $3, %edx
        jz      2f
        jnp     3f
@@ -92,6 +94,8 @@ ENTRY (BP_SYM (memset))
        RETURN_BOUNDED_POINTER (DEST(%esp))
 #endif
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
 #if BZERO_P
index 3d81fb6..0cd266a 100644 (file)
@@ -1,6 +1,6 @@
 /* strtok (str, delim) -- Return next DELIM separated token from STR.
    For Intel 80686.
-   Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2000, 2001, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
@@ -86,6 +86,8 @@ ENTRY (BP_SYM (FUNCTION))
 
 #if !defined USE_AS_STRTOK_R && defined PIC
        pushl %ebx                      /* Save PIC register.  */
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (ebx, 0)
        call 0b
        addl $_GLOBAL_OFFSET_TABLE_, %ebx
 #endif
@@ -97,6 +99,7 @@ ENTRY (BP_SYM (FUNCTION))
           table.  */
        movl %edi, %edx
        subl $256, %esp
+       cfi_adjust_cfa_offset (256)
        movl $64, %ecx
        movl %esp, %edi
        xorl %eax, %eax
@@ -257,8 +260,11 @@ L(8):      cmpl %eax, %edx
 L(epilogue):
        /* Remove the stopset table.  */
        addl $256, %esp
+       cfi_adjust_cfa_offset (-256)
 #if !defined USE_AS_STRTOK_R && defined PIC
        popl %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
 #endif
        LEAVE
        RET_PTR
index ab1c89d..536d987 100644 (file)
@@ -1,5 +1,5 @@
 /* i80386 __mpn_lshift --
-   Copyright (C) 1992, 1994, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1994, 1997-2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -33,11 +33,16 @@ ENTRY (BP_SYM (__mpn_lshift))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp),%edi
+       cfi_rel_offset (edi, 8)
        movl    S(%esp),%esi
+       cfi_rel_offset (esi, 4)
        movl    SIZE(%esp),%edx
        movl    CNT(%esp),%ecx
 #if __BOUNDED_POINTERS__
@@ -49,11 +54,13 @@ ENTRY (BP_SYM (__mpn_lshift))
        subl    $4,%esi                 /* adjust s_ptr */
 
        movl    (%esi,%edx,4),%ebx      /* read most significant limb */
+       cfi_rel_offset (ebx, 0)
        xorl    %eax,%eax
        shldl   %cl,%ebx,%eax           /* compute carry limb */
        decl    %edx
        jz      L(end)
        pushl   %eax                    /* push carry limb onto stack */
+       cfi_adjust_cfa_offset (4)
        testb   $1,%dl
        jnz     L(1)                    /* enter loop in the middle */
        movl    %ebx,%eax
@@ -73,10 +80,17 @@ L(1):       movl    (%esi,%edx,4),%eax
        movl    %eax,(%edi)             /* store it */
 
        popl    %eax                    /* pop carry limb */
+       cfi_adjust_cfa_offset (-4)
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
@@ -85,8 +99,14 @@ L(end):      shll    %cl,%ebx                /* compute least significant limb */
        movl    %ebx,(%edi)             /* store it */
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index 3cfb3d6..0898939 100644 (file)
@@ -1,7 +1,6 @@
-/* memchr (str, chr, len) -- Return pointer to first occurrence of CHR in STR less
-   than LEN.
-   For Intel 80x86, x>=3.
-   Copyright (C) 1994-1998, 2000, 2003 Free Software Foundation, Inc.
+/* memchr (str, chr, len) -- Return pointer to first occurrence of CHR in STR
+        less than LEN.  For Intel 80x86, x>=3.
+   Copyright (C) 1994-1998, 2000, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
    Optimised a little by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -45,12 +44,16 @@ ENTRY (BP_SYM (__memchr))
 
        /* Save callee-safe registers used in this function.  */
        pushl %esi
+       cfi_adjust_cfa_offset (4)
        pushl %edi
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (edi, 0)
 
        /* Load parameters into registers.  */
        movl STR(%esp), %eax    /* str: pointer to memory block.  */
        movl CHR(%esp), %edx    /* c: byte we are looking for.  */
        movl LEN(%esp), %esi    /* len: length of memory block.  */
+       cfi_rel_offset (esi, 4)
        CHECK_BOUNDS_LOW (%eax, STR(%esp))
 
        /* If my must not test more than three characters test
@@ -320,7 +323,11 @@ L(9):
        RETURN_BOUNDED_POINTER (STR(%esp))
 #endif
 L(pop):        popl %edi               /* pop saved registers */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
        popl %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
 
        LEAVE
        RET_PTR
index a795911..60b7512 100644 (file)
@@ -1,5 +1,5 @@
 /* Compare two memory blocks for differences in the first COUNT bytes.
-   Copyright (C) 1995, 1996, 1997, 2000, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,2000,2004,2005 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
@@ -32,10 +32,13 @@ ENTRY (BP_SYM (memcmp))
        ENTER
 
        pushl %esi              /* Save callee-safe registers.  */
+       cfi_adjust_cfa_offset (4)
        movl %edi, %edx         /* Note that %edx is not used and can
                                   so be used to save %edi.  It's faster.  */
+       cfi_register (edi, edx)
 
        movl BLK1(%esp), %esi
+       cfi_rel_offset (esi, 0)
        movl BLK2(%esp), %edi
        movl LEN(%esp), %ecx
        CHECK_BOUNDS_LOW (%esi, BLK1(%esp))
@@ -65,7 +68,10 @@ ENTRY (BP_SYM (memcmp))
 L(1):  CHECK_BOUNDS_HIGH (%esi, BLK1(%esp), jbe)
        CHECK_BOUNDS_HIGH (%edi, BLK2(%esp), jbe)
        popl %esi               /* Restore registers.  */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        movl %edx, %edi
+       cfi_restore (edi)
 
        LEAVE
        ret
index e9be6fb..2de8783 100644 (file)
@@ -1,6 +1,6 @@
 /* i80386 __mpn_mul_1 -- Multiply a limb vector with a limb and store
    the result in a second limb vector.
-   Copyright (C) 1992, 1994, 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,1994,1997,1998,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -39,14 +39,21 @@ ENTRY (BP_SYM (__mpn_mul_1))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp), %res_ptr
+       cfi_rel_offset (res_ptr, 12)
        movl    S1(%esp), %s1_ptr
+       cfi_rel_offset (s1_ptr, 8)
        movl    SIZE(%esp), %size
        movl    S2LIMB(%esp), %s2_limb
+       cfi_rel_offset (s2_limb, 0)
 #if __BOUNDED_POINTERS__
        shll    $2, %size       /* convert limbs to bytes */
        CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
@@ -57,6 +64,7 @@ ENTRY (BP_SYM (__mpn_mul_1))
        leal    (%s1_ptr,%size,4), %s1_ptr
        negl    %size
        xorl    %ebp, %ebp
+       cfi_rel_offset (ebp, 4)
        ALIGN (3)
 L(oop):
        movl    (%s1_ptr,%size,4), %eax
@@ -71,9 +79,17 @@ L(oop):
        movl    %ebp, %eax
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index 75c08ea..ddb9d52 100644 (file)
@@ -1,6 +1,6 @@
 /* rawmemchr (str, ch) -- Return pointer to first occurrence of CH in STR.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994,95,96,97,98,99,2000,2002 Free Software Foundation, Inc.
+   Copyright (C) 1994-2000,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
    Optimised a little by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -43,6 +43,8 @@ ENTRY (BP_SYM (__rawmemchr))
 
        /* Save callee-safe register used in this function.  */
        pushl %edi
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (edi, 0)
 
        /* Load parameters into registers.  */
        movl STR(%esp), %eax
@@ -217,6 +219,8 @@ L(9):
        CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
        RETURN_BOUNDED_POINTER (STR(%esp))
        popl %edi               /* pop saved register */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
index 51973fe..3fd0afe 100644 (file)
@@ -1,5 +1,5 @@
 /* i80386 __mpn_rshift --
-   Copyright (C) 1992, 1994, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,1994,1997-2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -33,11 +33,16 @@ ENTRY (BP_SYM (__mpn_rshift))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp),%edi
+       cfi_rel_offset (edi, 8)
        movl    S(%esp),%esi
+       cfi_rel_offset (esi, 4)
        movl    SIZE(%esp),%edx
        movl    CNT(%esp),%ecx
 #if __BOUNDED_POINTERS__
@@ -51,11 +56,13 @@ ENTRY (BP_SYM (__mpn_rshift))
        negl    %edx
 
        movl    (%esi,%edx,4),%ebx      /* read least significant limb */
+       cfi_rel_offset (ebx, 0)
        xorl    %eax,%eax
        shrdl   %cl,%ebx,%eax           /* compute carry limb */
        incl    %edx
        jz      L(end)
        pushl   %eax                    /* push carry limb onto stack */
+       cfi_adjust_cfa_offset (4)
        testb   $1,%dl
        jnz     L(1)                    /* enter loop in the middle */
        movl    %ebx,%eax
@@ -75,20 +82,37 @@ L(1):       movl    (%esi,%edx,4),%eax
        movl    %eax,(%edi)             /* store it */
 
        popl    %eax                    /* pop carry limb */
+       cfi_adjust_cfa_offset (-4)
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
 
+       cfi_adjust_cfa_offset (12)
+       cfi_rel_offset (edi, 8)
+       cfi_rel_offset (esi, 4)
+       cfi_rel_offset (ebx, 0)
 L(end):        shrl    %cl,%ebx                /* compute most significant limb */
        movl    %ebx,(%edi)             /* store it */
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index acde5e3..c163a33 100644 (file)
@@ -1,7 +1,7 @@
 /* copy no more then N bytes from SRC to DEST, returning the address of
    the terminating '\0' in DEST.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994,1995,1996,1997,2000,2002 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997,2000,2002,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
    Some bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -40,9 +40,11 @@ ENTRY (BP_SYM (__stpncpy))
        ENTER
 
        pushl %esi
+       cfi_adjust_cfa_offset (4)
 
        movl DEST(%esp), %eax
        movl SRC(%esp), %esi
+       cfi_rel_offset (esi, 0)
        movl LEN(%esp), %ecx
        CHECK_BOUNDS_LOW (%eax, DEST(%esp))
        CHECK_BOUNDS_LOW (%esi, SRC(%esp))
@@ -148,6 +150,8 @@ L(9):
        RETURN_BOUNDED_POINTER (DEST(%esp))
 #endif
        popl %esi               /* restore saved register content */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
 
        LEAVE
        RET_PTR
index f5cee2f..93b4cce 100644 (file)
@@ -1,6 +1,7 @@
 /* strchr (str, ch) -- Return pointer to first occurrence of CH in STR.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994-1997,1999,2000,2002,2003 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997,1999,2000,2002,2003,2005
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
    Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -35,6 +36,8 @@ ENTRY (BP_SYM (strchr))
        ENTER
 
        pushl %edi              /* Save callee-safe registers used here.  */
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (edi, 0)
        movl STR(%esp), %eax
        movl CHR(%esp), %edx
        CHECK_BOUNDS_LOW (%eax, STR(%esp))
@@ -244,10 +247,14 @@ L(2):     /* Return NULL.  */
        xorl %eax, %eax
        RETURN_NULL_BOUNDED_POINTER
        popl %edi               /* restore saved register content */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
 
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (edi, 0)
 L(73): addl $4, %eax           /* adjust pointer */
 L(72): addl $4, %eax
 L(71): addl $4, %eax
@@ -283,6 +290,8 @@ L(6):
        CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
        RETURN_BOUNDED_POINTER (STR(%esp))
        popl %edi               /* restore saved register content */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
index 9a521eb..8d1f7b2 100644 (file)
@@ -1,7 +1,7 @@
 /* strchrnul (str, chr) -- Return pointer to first occurrence of CHR in STR
    or the final NUL byte.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997, 1999, 2000, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.org>
    Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -36,6 +36,8 @@ ENTRY (BP_SYM (__strchrnul))
        ENTER
 
        pushl %edi              /* Save callee-safe registers used here.  */
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (edi, 0)
 
        movl STR(%esp), %eax
        movl CHR(%esp), %edx
@@ -274,6 +276,8 @@ L(7):       testb %cl, %cl          /* is first byte CHR? */
 L(6):  CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
        RETURN_BOUNDED_POINTER (STR(%esp))
        popl %edi               /* restore saved register content */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
index dc3a176..df6a136 100644 (file)
@@ -1,7 +1,7 @@
 /* strcspn (str, ss) -- Return the length of the initial segment of STR
                        which contains no characters from SS.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994,1995,1996,1997,2000,2003 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997,2000,2003,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>
@@ -46,69 +46,133 @@ ENTRY (BP_SYM (strcspn))
        xorl %ecx, %ecx         /* %ecx = 0 !!! */
 
        pushl %ecx              /* make a 256 bytes long block filled with 0 */
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* These immediate values make the label 2 */
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* to be aligned on a 16 byte boundary to */
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* get a better performance of the loop.  */
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
 
 /* For understanding the following code remember that %ecx == 0 now.
    Although all the following instruction only modify %cl we always
@@ -172,6 +236,7 @@ L(6):       incl %eax
 L(5):  incl %eax
 
 L(4):  addl $256, %esp         /* remove stopset */
+       cfi_adjust_cfa_offset (-256)
        CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
        subl %edx, %eax         /* we have to return the number of valid
                                   characters, so compute distance to first
index 66136c2..1f78e20 100644 (file)
@@ -1,7 +1,7 @@
 /* strcspn (str, ss) -- Return the length of the initial segement of STR
                        which contains no characters from SS.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994-1997, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997, 2000, 2003, 2005 Free Software Foundation, Inc.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
    Bug fixes by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
    This file is part of the GNU C Library.
@@ -47,69 +47,133 @@ ENTRY (BP_SYM (strpbrk))
        xorl %ecx, %ecx         /* %ecx = 0 !!! */
 
        pushl %ecx              /* make a 256 bytes long block filled with 0 */
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* These immediate values make the label 2 */
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* to be aligned on a 16 byte boundary to */
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* get a better performance of the loop.  */
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
 
 /* For understanding the following code remember that %ecx == 0 now.
    Although all the following instruction only modify %cl we always
@@ -173,6 +237,7 @@ L(6):       incl %eax
 L(5):  incl %eax
 
 L(4):  addl $256, %esp         /* remove stopset */
+       cfi_adjust_cfa_offset (-256)
 
        CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
        orb %cl, %cl            /* was last character NUL? */
index 0fd95b5..98c0c08 100644 (file)
@@ -1,6 +1,6 @@
 /* strrchr (str, ch) -- Return pointer to last occurrence of CH in STR.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994-1997, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997, 2000, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>
    Some optimisations by Alan Modra <Alan@SPRI.Levels.UniSA.Edu.Au>
@@ -35,10 +35,14 @@ ENTRY (BP_SYM (strrchr))
        ENTER
 
        pushl %edi              /* Save callee-safe registers used here.  */
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (edi, 0)
        pushl %esi
+       cfi_adjust_cfa_offset (4)
 
        xorl %eax, %eax
        movl STR(%esp), %esi
+       cfi_rel_offset (esi, 0)
        movl CHR(%esp), %ecx
        CHECK_BOUNDS_LOW (%esi, STR(%esp))
 
@@ -299,20 +303,20 @@ L(21):    addl $4, %esi
           returned.  */
 
 L(20): cmpb %cl, %dl           /* is first byte == C? */
-       jne L(24)                       /* no => skip */
+       jne L(24)               /* no => skip */
        movl %esi, %eax         /* store address as result */
 L(24): testb %dl, %dl          /* is first byte == NUL? */
        jz L(2)                 /* yes => return */
 
        cmpb %cl, %dh           /* is second byte == C? */
-       jne L(25)                       /* no => skip */
+       jne L(25)               /* no => skip */
        leal 1(%esi), %eax      /* store address as result */
 L(25): testb %dh, %dh          /* is second byte == NUL? */
        jz L(2)                 /* yes => return */
 
        shrl $16,%edx           /* make upper bytes accessible */
        cmpb %cl, %dl           /* is third byte == C */
-       jne L(26)                       /* no => skip */
+       jne L(26)               /* no => skip */
        leal 2(%esi), %eax      /* store address as result */
 L(26): testb %dl, %dl          /* is third byte == NUL */
        jz L(2)                 /* yes => return */
@@ -324,7 +328,11 @@ L(26):     testb %dl, %dl          /* is third byte == NUL */
 L(2):  CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
        RETURN_BOUNDED_POINTER (STR(%esp))
        popl %esi               /* restore saved register content */
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        RET_PTR
index e1c109e..c061438 100644 (file)
@@ -1,7 +1,7 @@
 /* strcspn (str, ss) -- Return the length of the initial segment of STR
                        which contains only characters from SS.
    For Intel 80x86, x>=3.
-   Copyright (C) 1994-1997, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1994-1997, 2000, 2003, 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>
@@ -46,69 +46,133 @@ ENTRY (BP_SYM (strspn))
        xorl %ecx, %ecx         /* %ecx = 0 !!! */
 
        pushl %ecx              /* make a 256 bytes long block filled with 0 */
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* These immediate values make the label 2 */
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* to be aligned on a 16 byte boundary to */
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* get a better performance of the loop.  */
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
 
 /* For understanding the following code remember that %ecx == 0 now.
    Although all the following instruction only modify %cl we always
@@ -172,6 +236,7 @@ L(6):       incl %eax
 L(5):  incl %eax
 
 L(4):  addl $256, %esp         /* remove stopset */
+       cfi_adjust_cfa_offset (-256)
        CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
        subl %edx, %eax         /* we have to return the number of valid
                                   characters, so compute distance to first
index d2786e2..e45db61 100644 (file)
@@ -1,6 +1,6 @@
 /* strtok (str, delim) -- Return next DELIM separated token from STR.
    For Intel 80x86, x>=3.
-   Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1996-1998, 2000, 2001, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -78,9 +78,13 @@ ENTRY (BP_SYM (FUNCTION))
 
 #if !defined USE_AS_STRTOK_R && defined PIC
        pushl %ebx                      /* Save PIC register.  */
+       cfi_adjust_cfa_offset (4)
        call L(here)
+       cfi_adjust_cfa_offset (4)
+       cfi_rel_offset (ebx, 4)
 L(here):
        popl %ebx
+       cfi_adjust_cfa_offset (-4)
        addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebx
 #endif
 
@@ -125,69 +129,133 @@ L(1):
        xorl %ecx, %ecx         /* %ecx = 0 !!! */
 
        pushl %ecx              /* make a 256 bytes long block filled with 0 */
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl %ecx
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* These immediate values make the label 2 */
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* to be aligned on a 16 byte boundary to */
+       cfi_adjust_cfa_offset (4)
        pushl $0                /* get a better performance of the loop.  */
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
        pushl $0
+       cfi_adjust_cfa_offset (4)
 
 /* For understanding the following code remember that %ecx == 0 now.
    Although all the following instruction only modify %cl we always
@@ -284,6 +352,7 @@ L(9):       incl %edx
 
 L(8):  /* Remove the stopset table.  */
        addl $256, %esp
+       cfi_adjust_cfa_offset (-256)
 
        cmpl %eax, %edx
        je L(returnNULL)        /* There was no token anymore.  */
@@ -308,6 +377,8 @@ L(11):
 L(epilogue):
 #if !defined USE_AS_STRTOK_R && defined PIC
        popl %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
 #endif
        LEAVE
        RET_PTR
index b545985..c9f6418 100644 (file)
@@ -1,6 +1,7 @@
 /* i80386 __mpn_sub_n -- Add two limb vectors of the same length > 0 and store
    sum in a third limb vector.
-   Copyright (C) 1992, 1994, 1995, 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,1994,1995,1997,1998,2000,2005
+   Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -34,10 +35,14 @@ ENTRY (BP_SYM (__mpn_sub_n))
        ENTER
 
        pushl %edi
+       cfi_adjust_cfa_offset (4)
        pushl %esi
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp),%edi
+       cfi_rel_offset (edi, 4)
        movl    S1(%esp),%esi
+       cfi_rel_offset (esi, 0)
        movl    S2(%esp),%edx
        movl    SIZE(%esp),%ecx
 #if __BOUNDED_POINTERS__
@@ -106,7 +111,11 @@ L(oop):    movl    (%esi),%eax
        negl    %eax
 
        popl %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index 8bfcde1..f932213 100644 (file)
@@ -1,6 +1,6 @@
 /* i80386 __mpn_submul_1 -- Multiply a limb vector with a limb and subtract
    the result from a second limb vector.
-   Copyright (C) 1992, 1994, 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1992,1994,1997,1998,2000,2005 Free Software Foundation, Inc.
    This file is part of the GNU MP Library.
 
    The GNU MP Library is free software; you can redistribute it and/or modify
@@ -39,14 +39,21 @@ ENTRY (BP_SYM (__mpn_submul_1))
        ENTER
 
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
 
        movl    RES(%esp), %res_ptr
+       cfi_rel_offset (res_ptr, 12)
        movl    S1(%esp), %s1_ptr
+       cfi_rel_offset (s1_ptr, 8)
        movl    SIZE(%esp), %sizeP
        movl    S2LIMB(%esp), %s2_limb
+       cfi_rel_offset (s2_limb, 0)
 #if __BOUNDED_POINTERS__
        shll    $2, %sizeP      /* convert limbs to bytes */
        CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
@@ -57,6 +64,7 @@ ENTRY (BP_SYM (__mpn_submul_1))
        leal    (%s1_ptr,%sizeP,4), %s1_ptr
        negl    %sizeP
        xorl    %ebp, %ebp
+       cfi_rel_offset (ebp, 4)
        ALIGN (3)
 L(oop):
        movl    (%s1_ptr,%sizeP,4), %eax
@@ -72,9 +80,17 @@ L(oop):
        movl    %ebp, %eax
 
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
 
        LEAVE
        ret
index c7d31f7..69243d5 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996,1997,98,99,2000,02,03,04 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2000,02,03,04,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson (rth@tamu.edu)
 
@@ -83,12 +83,18 @@ ENTRY (BP_SYM (__clone))
 
        /* Do the system call */
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
        movl    TLS+12(%esp),%esi
+       cfi_rel_offset (esi, 4)
        movl    PTID+12(%esp),%edx
        movl    FLAGS+12(%esp),%ebx
+       cfi_rel_offset (ebx, 8)
        movl    CTID+12(%esp),%edi
+       cfi_rel_offset (edi, 0)
        movl    $SYS_ify(clone),%eax
 
 #ifdef RESET_PID
@@ -98,8 +104,14 @@ ENTRY (BP_SYM (__clone))
 
        int     $0x80
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
 
        test    %eax,%eax
        jl      SYSCALL_ERROR_LABEL
@@ -119,13 +131,15 @@ L(haspid):
        call    *%ebx
 #ifdef PIC
        call    L(here)
+       cfi_adjust_cfa_offset (4)
 L(here):
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
        addl    $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebx
 #endif
        movl    %eax, %ebx
        movl    $SYS_ify(exit), %eax
-       int     $0x80
+       ENTER_KERNEL
 
 #ifdef RESET_PID
        .subsection 2
index ebb21f3..9f664de 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995,96,97,98,99,2000,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995,96,97,98,99,2000,2002,2005 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
@@ -32,16 +32,24 @@ ENTRY (__mmap)
 
        /* Save registers.  */
        pushl %ebp
+       cfi_adjust_cfa_offset (4)
        pushl %ebx
+       cfi_adjust_cfa_offset (4)
        pushl %esi
+       cfi_adjust_cfa_offset (4)
        pushl %edi
+       cfi_adjust_cfa_offset (4)
 
        movl 20(%esp), %ebx
+       cfi_rel_offset (ebx, 8)
        movl 24(%esp), %ecx
        movl 28(%esp), %edx
        movl 32(%esp), %esi
+       cfi_rel_offset (esi, 4)
        movl 36(%esp), %edi
+       cfi_rel_offset (edi, 0)
        movl 40(%esp), %ebp
+       cfi_rel_offset (ebp, 12)
        testl $0xfff, %ebp
        movl $-EINVAL, %eax
        jne L(skip)
@@ -54,9 +62,17 @@ ENTRY (__mmap)
 L(skip):
        /* Restore registers.  */
        popl %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
        popl %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
 
 #else
 
index 3a03335..89d9f5f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995,96,97,98,99,2000,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1995,96,97,98,99,2000,2002,2005 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
@@ -42,9 +42,13 @@ ENTRY (BP_SYM (__mmap64))
 
        /* Save registers.  */
        pushl %ebp
+       cfi_adjust_cfa_offset (4)
        pushl %ebx
+       cfi_adjust_cfa_offset (4)
        pushl %esi
+       cfi_adjust_cfa_offset (4)
        pushl %edi
+       cfi_adjust_cfa_offset (4)
 
        movl OFFLO(%esp), %edx
        movl OFFHI(%esp), %ecx
@@ -54,12 +58,16 @@ ENTRY (BP_SYM (__mmap64))
        shrl $12, %ecx
        jne L(einval)
        movl %edx, %ebp
+       cfi_rel_offset (ebp, 12)
 
        movl ADDR(%esp), %ebx
+       cfi_rel_offset (ebx, 8)
        movl LEN(%esp), %ecx
        movl PROT(%esp), %edx
        movl FLAGS(%esp), %esi
+       cfi_rel_offset (esi, 4)
        movl FD(%esp), %edi
+       cfi_rel_offset (edi, 0)
 
        movl $SYS_ify(mmap2), %eax      /* System call number in %eax.  */
 
@@ -69,9 +77,17 @@ L(do_syscall):
 
        /* Restore registers.  */
        popl %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
        popl %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
 
 #ifndef __ASSUME_MMAP2_SYSCALL
 2:
@@ -87,12 +103,25 @@ L(do_syscall):
 L(pseudo_end):
        ret
 
+       cfi_adjust_cfa_offset (16)
+       cfi_rel_offset (ebp, 12)
+       cfi_rel_offset (ebx, 8)
+       cfi_rel_offset (esi, 4)
+       cfi_rel_offset (edi, 0)
        /* This means the offset value is too large.  */
 L(einval):
        popl %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
        popl %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
        movl $-EINVAL, %eax
        jmp SYSCALL_ERROR_LABEL
 #endif
index 99a3ea5..dc82582 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2000,2002,2003,2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2000,2002,2003,2004, 2005 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
@@ -42,25 +42,41 @@ ENTRY (BP_SYM (__posix_fadvise64_l64))
 
        /* Save registers.  */
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
 
        movl    FD(%esp), %ebx
+       cfi_rel_offset (ebx, 8)
        movl    OFFLO(%esp), %ecx
        movl    OFFHI(%esp), %edx
        movl    LENLO(%esp), %esi
+       cfi_rel_offset (esi, 4)
        movl    LENHI(%esp), %edi
+       cfi_rel_offset (edi, 0)
        movl    FLAGS(%esp), %ebp
+       cfi_rel_offset (ebp, 12)
 
        movl    $SYS_ify(fadvise64_64), %eax
        ENTER_KERNEL
 
        /* Restore registers.  */
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
 
 #ifndef __ASSUME_FADVISE64_64_SYSCALL
        cmpl    $-ENOSYS, %eax
@@ -80,8 +96,11 @@ ENTRY (BP_SYM (__posix_fadvise64_l64))
     && (!defined __ASSUME_FADVISE64_64_SYSCALL || !defined __NR_fadvise64_64)
 1:     /* Save registers.  */
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
        pushl   %esi
+       cfi_adjust_cfa_offset (4)
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
 
        /* Overflow check.  */
        cmpl    $0, LENHI(%esp)
@@ -89,10 +108,13 @@ ENTRY (BP_SYM (__posix_fadvise64_l64))
        jne     L(overflow)
 
        movl    FD(%esp), %ebx
+       cfi_rel_offset (ebx, 8)
        movl    OFFLO(%esp), %ecx
        movl    OFFHI(%esp), %edx
        movl    LENLO(%esp), %esi
+       cfi_rel_offset (esi, 4)
        movl    FLAGS(%esp), %edi
+       cfi_rel_offset (edi, 0)
 
        movl    $SYS_ify(fadvise64), %eax
        ENTER_KERNEL
@@ -100,8 +122,14 @@ ENTRY (BP_SYM (__posix_fadvise64_l64))
        /* Restore registers.  */
 L(overflow):
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
        popl    %esi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (esi)
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
 
        /* If 0 > %eax > -4096 there was an error.  */
        negl    %eax
index 5726416..0893c6a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
 
 ENTRY (BP_SYM (semtimedop))
 
        pushl   %ebp
+       cfi_adjust_cfa_offset (4)
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
        pushl   %edi
+       cfi_adjust_cfa_offset (4)
 
        movl    $SYSOP_semtimedop, %ebx
+       cfi_rel_offset (ebx, 4)
        movl    SEMID(%esp), %ecx
        movl    NSOPS(%esp), %edx
        movl    SOPS(%esp), %edi
+       cfi_rel_offset (edi, 0)
        movl    TIMEOUT(%esp), %ebp
+       cfi_rel_offset (ebp, 8)
        movl    $__NR_ipc, %eax
 
        ENTER_KERNEL
 
        /* Restore registers.  */
        popl    %edi
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (edi)
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        popl    %ebp
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebp)
 
        /* If 0 > %eax > -4096 there was an error.  */
        cmpl $-4096, %eax
index ebed2ce..22469b2 100644 (file)
@@ -1,5 +1,5 @@
 /* Install given context.
-   Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
 
@@ -31,12 +31,16 @@ ENTRY(__setcontext)
           the system call fails and we return from the function with an
           error.  */
        pushl   %ebx
+       cfi_adjust_cfa_offset (4)
        xorl    %edx, %edx
        leal    oSIGMASK(%eax), %ecx
        movl    $SIG_SETMASK, %ebx
+       cfi_rel_offset (ebx, 0)
        movl    $__NR_sigprocmask, %eax
        ENTER_KERNEL
        popl    %ebx
+       cfi_adjust_cfa_offset (-4)
+       cfi_restore (ebx)
        cmpl    $-4095, %eax            /* Check %eax for error.  */
        jae     SYSCALL_ERROR_LABEL     /* Jump to error handler if error.  */
 
index 26cddd5..002cc46 100644 (file)
 
 /* The tgkill syscall was instroduced for i386 in 2.5.75.  For Alpha
    it was introduced in 2.6.0-test1 which unfortunately cannot be
-   distinguished from 2.6.0.  On x86-64, ppc, and ppc64 it was 
+   distinguished from 2.6.0.  On x86-64, ppc, and ppc64 it was
    introduced in 2.6.0-test3. */
 #if (__LINUX_KERNEL_VERSION >= 132427 && defined __i386__) \
     || (__LINUX_KERNEL_VERSION >= 132609 && defined __alpha__) \
 #endif
 
 /* The utimes syscall has been available for some architectures
-   forever.  For x86 it was introduced after 2.5.75, for x86-64, 
+   forever.  For x86 it was introduced after 2.5.75, for x86-64,
    ppc, and ppc64 it was introduced in 2.6.0-test3.  */
 #if defined __alpha__ || defined __ia64__ || defined __hppa__ \
     || defined __sparc__ \
 #endif
 
 /* Starting with version 2.6.9, the waitid system call is available.
-   Except for powerpc and powerpc64.  */
-#if __LINUX_KERNEL_VERSION >=  0x020609 && !defined __powerpc__
+   Except for powerpc and powerpc64, where it is available in 2.6.12.  */
+#if (__LINUX_KERNEL_VERSION >= 0x020609 && !defined __powerpc__) \
+    || (__LINUX_KERNEL_VERSION >= 0x02060c && defined __powerpc__)
 # define __ASSUME_WAITID_SYSCALL       1
 #endif