* sysdeps/sh/sysdep.h: Add cfi instrumentation to asm fragments.
authorUlrich Drepper <drepper@redhat.com>
Fri, 30 Dec 2005 22:17:53 +0000 (22:17 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 30 Dec 2005 22:17:53 +0000 (22:17 +0000)
* sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
* sysdeps/sh/_mcount.S: Add cfi instrumentation.
* sysdeps/unix/sh/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/sh/makecontext.S: Adjust cfi_startproc.
* sysdeps/unix/sysv/linux/sh/sh4/getcontext.S: Remove now duplicate
cfi_startproc and cfi_endproc.
* sysdeps/unix/sysv/linux/sh/sh4/setcontext.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sh3/getcontext.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sh3/setcontext.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S: Likewise.
* sysdeps/unix/sysv/linux/sh/socket.S: Likewise.
* sysdeps/unix/sysv/linux/sh/sysdep.S: Add cfi_endproc.

12 files changed:
ChangeLog
sysdeps/sh/sysdep.h
sysdeps/unix/sysv/linux/sh/makecontext.S
sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
sysdeps/unix/sysv/linux/sh/socket.S
sysdeps/unix/sysv/linux/sh/sysdep.S
sysdeps/unix/sysv/linux/sh/sysdep.h

index a649c42..e19a45e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2005-12-29  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * sysdeps/sh/sysdep.h: Add cfi instrumentation to asm fragments.
+       * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
+       * sysdeps/sh/_mcount.S: Add cfi instrumentation.
+       * sysdeps/unix/sh/sysdep.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/makecontext.S: Adjust cfi_startproc.
+       * sysdeps/unix/sysv/linux/sh/sh4/getcontext.S: Remove now duplicate
+       cfi_startproc and cfi_endproc.
+       * sysdeps/unix/sysv/linux/sh/sh4/setcontext.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/sh3/getcontext.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/sh3/setcontext.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/socket.S: Likewise.
+       * sysdeps/unix/sysv/linux/sh/sysdep.S: Add cfi_endproc.
+
 2005-12-30  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/powerpc/powerpc64/setjmp-common.S: Make sure pointer guard
index 202c701..743631a 100644 (file)
@@ -1,5 +1,5 @@
 /* Assembler macros for SH.
-   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1999, 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
   ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function)                          \
   .align ALIGNARG(5);                                                        \
   C_LABEL(name)                                                                      \
+  cfi_startproc;                                                             \
   CALL_MCOUNT
 
 #undef END
 #define END(name)                                                            \
+  cfi_endproc;                                                               \
   ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name))
 
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #define CALL_MCOUNT                                    \
        mov.l   1f,r1;                                  \
        sts.l   pr,@-r15;                               \
+       cfi_adjust_cfa_offset (4);                      \
+       cfi_rel_offset (pr, 0);                         \
        mova    2f,r0;                                  \
        jmp     @r1;                                    \
         lds    r0,pr;                                  \
        .align  2;                                      \
 1:     .long   mcount;                                 \
-2:     lds.l   @r15+,pr
+2:     lds.l   @r15+,pr;                               \
+       cfi_adjust_cfa_offset (-4);                     \
+       cfi_restore (pr)
+
 #else
 #define CALL_MCOUNT            /* Do nothing.  */
 #endif
index deb6181..877d78d 100644 (file)
@@ -32,7 +32,6 @@
 
        .text
        .align  5
-       cfi_startproc
 ENTRY(__makecontext)
        mov     #4, r3
        mov.l   @(oSS_SP,r4), r1
@@ -140,6 +139,7 @@ ENTRY(__makecontext)
 .L4:
        .long   HIDDEN_JUMPTARGET(exit)
 #endif
+       cfi_startproc
 PSEUDO_END(__makecontext)
 
 weak_alias (__makecontext, makecontext)
index 3ea47d4..66b3daa 100644 (file)
@@ -25,7 +25,6 @@
 
        .text
        .align  5
-       cfi_startproc
 ENTRY(__getcontext)
 
        /* Return value of getcontext.  R0 is the only register whose
@@ -84,7 +83,6 @@ ENTRY(__getcontext)
        rts
         nop
 
-       cfi_endproc
 PSEUDO_END(__getcontext)
 
 weak_alias (__getcontext, getcontext)
index 30fbf7d..3136267 100644 (file)
@@ -25,7 +25,6 @@
 
        .text
        .align  5
-       cfi_startproc
 ENTRY(__setcontext)
 
        mov     r4, r8
@@ -95,7 +94,6 @@ ENTRY(__setcontext)
        jmp     @r0
         mov.l  @r15+, r0
 
-       cfi_endproc
 PSEUDO_END(__setcontext)
 
 weak_alias (__setcontext, setcontext)
index aa0129e..64035e5 100644 (file)
@@ -25,7 +25,6 @@
 
        .text
        .align  5
-       cfi_startproc
 ENTRY(__swapcontext)
 
        /* Return value of getcontext.  R0 is the only register whose
@@ -128,7 +127,6 @@ ENTRY(__swapcontext)
        jmp     @r0
         mov.l  @r15+, r0
        
-       cfi_endproc
 PSEUDO_END(__swapcontext)
 
 weak_alias (__swapcontext, swapcontext)
index 380c459..68bc235 100644 (file)
@@ -25,7 +25,6 @@
 
        .text
        .align  5
-       cfi_startproc
 ENTRY(__getcontext)
 
        /* Return value of getcontext.  R0 is the only register whose
@@ -127,7 +126,6 @@ ENTRY(__getcontext)
        rts
         nop
 
-       cfi_endproc
 PSEUDO_END(__getcontext)
 
 weak_alias (__getcontext, getcontext)
index 9e98910..2bc546d 100644 (file)
@@ -25,7 +25,6 @@
 
        .text
        .align  5
-       cfi_startproc
 ENTRY(__setcontext)
 
        mov     r4, r8
@@ -135,7 +134,6 @@ ENTRY(__setcontext)
        jmp     @r0
         mov.l  @r15+, r0
 
-       cfi_endproc
 PSEUDO_END(__setcontext)
 
 weak_alias (__setcontext, setcontext)
index 1d58a40..1aeca1b 100644 (file)
@@ -25,7 +25,6 @@
 
        .text
        .align  5
-       cfi_startproc
 ENTRY(__swapcontext)
 
        /* Return value of getcontext.  R0 is the only register whose
@@ -210,7 +209,6 @@ ENTRY(__swapcontext)
        jmp     @r0
         mov.l  @r15+, r0
        
-       cfi_endproc
 PSEUDO_END(__swapcontext)
 
 weak_alias (__swapcontext, swapcontext)
index eb1761b..c83b0f2 100644 (file)
@@ -88,7 +88,6 @@
 #endif
 
 .globl __socket
-       cfi_startproc
 ENTRY (__socket)
        /* This will not work in the case of a socket call being interrupted
           by a signal.  If the signal handler uses any stack the arguments
@@ -169,7 +168,6 @@ ENTRY (__socket)
        bra     .Lsyscall_error
         nop
 #endif
-       cfi_endproc
 
        .align 2
 .L1:
index 33fdc74..176d99a 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998, 1999, 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
@@ -27,6 +28,7 @@
 
 ENTRY (__syscall_error)
        neg r4, r0
+       cfi_endproc
 
 #define __syscall_error __syscall_error_1
 #include <sysdeps/unix/sh/sysdep.S>
index 1a412e5..b412362 100644 (file)
 #   define SYSCALL_ERROR_HANDLER \
        neg r0,r1; \
        mov.l r14,@-r15; \
+       cfi_adjust_cfa_offset (4); \
+       cfi_rel_offset (r14, 0); \
        mov.l r12,@-r15; \
+       cfi_adjust_cfa_offset (4); \
+       cfi_rel_offset (r12, 0); \
        mov.l r1,@-r15; \
+       cfi_adjust_cfa_offset (4); \
+       cfi_rel_offset (r1, 0); \
        mov.l 0f,r12; \
        mova 0f,r0; \
        add r0,r12; \
        sts.l pr,@-r15; \
+       cfi_adjust_cfa_offset (4); \
+       cfi_rel_offset (pr, 0); \
        mov r15,r14; \
+       cfi_def_cfa_register (r14); \
        mov.l 1f,r1; \
        bsrf r1; \
          nop; \