* 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.
This commit is contained in:
parent
5ad7714494
commit
3ddf7149f0
17
ChangeLog
17
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
|
||||
|
@ -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
|
||||
@ -52,10 +52,12 @@
|
||||
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. */
|
||||
@ -63,12 +65,17 @@
|
||||
#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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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>
|
||||
|
@ -141,13 +141,22 @@
|
||||
# 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; \
|
||||
|
Loading…
Reference in New Issue
Block a user