mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
Change dlt reg save to r3 and generate unwind info by hand.
This commit is contained in:
parent
964b686b75
commit
70d533e66b
@ -59,8 +59,6 @@ __asm__ ("
|
|||||||
.align 4
|
.align 4
|
||||||
.globl _init
|
.globl _init
|
||||||
.type _init,@function
|
.type _init,@function
|
||||||
.proc
|
|
||||||
.callinfo
|
|
||||||
_init:
|
_init:
|
||||||
stw %rp,-20(%sp)
|
stw %rp,-20(%sp)
|
||||||
stwm %r4,64(%sp)
|
stwm %r4,64(%sp)
|
||||||
@ -68,25 +66,38 @@ _init:
|
|||||||
bl __gmon_start__,%rp
|
bl __gmon_start__,%rp
|
||||||
copy %r19,%r4 /* delay slot */
|
copy %r19,%r4 /* delay slot */
|
||||||
copy %r4,%r19
|
copy %r4,%r19
|
||||||
.align 4
|
|
||||||
.procend
|
|
||||||
/*@_init_PROLOG_ENDS*/
|
/*@_init_PROLOG_ENDS*/
|
||||||
|
|
||||||
/*@_init_EPILOG_BEGINS*/
|
/*@_init_EPILOG_BEGINS*/
|
||||||
.section .init
|
|
||||||
copy %r4,%r19
|
|
||||||
ldw -84(%sp),%rp
|
|
||||||
bv %r0(%rp)
|
|
||||||
ldwm -64(%sp),%r4
|
|
||||||
.text
|
.text
|
||||||
.align 4
|
.align 4
|
||||||
.weak __gmon_start__
|
.weak __gmon_start__
|
||||||
.type __gmon_start__,@function
|
.type __gmon_start__,@function
|
||||||
|
__gmon_start__:
|
||||||
.proc
|
.proc
|
||||||
.callinfo
|
.callinfo
|
||||||
__gmon_start__:
|
.entry
|
||||||
bv,n %r0(%r2)
|
bv,n %r0(%r2)
|
||||||
|
.exit
|
||||||
.procend
|
.procend
|
||||||
|
|
||||||
|
/* Here is the tail end of _init. We put __gmon_start before this so
|
||||||
|
that the assembler creates the .PARISC.unwind section for us, ie.
|
||||||
|
with the right attributes. */
|
||||||
|
.section .init
|
||||||
|
ldw -84(%sp),%rp
|
||||||
|
copy %r4,%r19
|
||||||
|
bv %r0(%rp)
|
||||||
|
_end_init:
|
||||||
|
ldwm -64(%sp),%r4
|
||||||
|
|
||||||
|
/* Our very own unwind info, because the assembler can't handle
|
||||||
|
functions split into two or more pieces. */
|
||||||
|
.section .PARISC.unwind
|
||||||
|
.extern _init
|
||||||
|
.word _init, _end_init
|
||||||
|
.byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
|
||||||
|
|
||||||
/*@_init_EPILOG_ENDS*/
|
/*@_init_EPILOG_ENDS*/
|
||||||
|
|
||||||
/*@_fini_PROLOG_BEGINS*/
|
/*@_fini_PROLOG_BEGINS*/
|
||||||
@ -94,23 +105,26 @@ __gmon_start__:
|
|||||||
.align 4
|
.align 4
|
||||||
.globl _fini
|
.globl _fini
|
||||||
.type _fini,@function
|
.type _fini,@function
|
||||||
.proc
|
|
||||||
.callinfo
|
|
||||||
_fini:
|
_fini:
|
||||||
stw %rp,-20(%sp)
|
stw %rp,-20(%sp)
|
||||||
stwm %r4,64(%sp)
|
stwm %r4,64(%sp)
|
||||||
stw %r19,-32(%sp)
|
stw %r19,-32(%sp)
|
||||||
copy %r19,%r4
|
copy %r19,%r4
|
||||||
.align 4
|
|
||||||
.procend
|
|
||||||
/*@_fini_PROLOG_ENDS*/
|
/*@_fini_PROLOG_ENDS*/
|
||||||
|
|
||||||
/*@_fini_EPILOG_BEGINS*/
|
/*@_fini_EPILOG_BEGINS*/
|
||||||
.section .fini
|
.section .fini
|
||||||
copy %r4,%r19
|
|
||||||
ldw -84(%sp),%rp
|
ldw -84(%sp),%rp
|
||||||
|
copy %r4,%r19
|
||||||
bv %r0(%rp)
|
bv %r0(%rp)
|
||||||
|
_end_fini:
|
||||||
ldwm -64(%sp),%r4
|
ldwm -64(%sp),%r4
|
||||||
|
|
||||||
|
.section .PARISC.unwind
|
||||||
|
.extern _fini
|
||||||
|
.word _fini, _end_fini
|
||||||
|
.byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
|
||||||
|
|
||||||
/*@_fini_EPILOG_ENDS*/
|
/*@_fini_EPILOG_ENDS*/
|
||||||
|
|
||||||
/*@TRAILER_BEGINS*/
|
/*@TRAILER_BEGINS*/
|
||||||
|
Loading…
Reference in New Issue
Block a user