* 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-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
/* 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
.text
.align 5
- cfi_startproc
ENTRY(__makecontext)
mov #4, r3
mov.l @(oSS_SP,r4), r1
.L4:
.long HIDDEN_JUMPTARGET(exit)
#endif
+ cfi_startproc
PSEUDO_END(__makecontext)
weak_alias (__makecontext, makecontext)
.text
.align 5
- cfi_startproc
ENTRY(__getcontext)
/* Return value of getcontext. R0 is the only register whose
rts
nop
- cfi_endproc
PSEUDO_END(__getcontext)
weak_alias (__getcontext, getcontext)
.text
.align 5
- cfi_startproc
ENTRY(__setcontext)
mov r4, r8
jmp @r0
mov.l @r15+, r0
- cfi_endproc
PSEUDO_END(__setcontext)
weak_alias (__setcontext, setcontext)
.text
.align 5
- cfi_startproc
ENTRY(__swapcontext)
/* Return value of getcontext. R0 is the only register whose
jmp @r0
mov.l @r15+, r0
- cfi_endproc
PSEUDO_END(__swapcontext)
weak_alias (__swapcontext, swapcontext)
.text
.align 5
- cfi_startproc
ENTRY(__getcontext)
/* Return value of getcontext. R0 is the only register whose
rts
nop
- cfi_endproc
PSEUDO_END(__getcontext)
weak_alias (__getcontext, getcontext)
.text
.align 5
- cfi_startproc
ENTRY(__setcontext)
mov r4, r8
jmp @r0
mov.l @r15+, r0
- cfi_endproc
PSEUDO_END(__setcontext)
weak_alias (__setcontext, setcontext)
.text
.align 5
- cfi_startproc
ENTRY(__swapcontext)
/* Return value of getcontext. R0 is the only register whose
jmp @r0
mov.l @r15+, r0
- cfi_endproc
PSEUDO_END(__swapcontext)
weak_alias (__swapcontext, swapcontext)
#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
bra .Lsyscall_error
nop
#endif
- cfi_endproc
.align 2
.L1:
-/* 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
ENTRY (__syscall_error)
neg r4, r0
+ cfi_endproc
#define __syscall_error __syscall_error_1
#include <sysdeps/unix/sh/sysdep.S>
# 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; \