[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PA initfini fixes
From: |
Matthew Wilcox |
Subject: |
PA initfini fixes |
Date: |
Thu, 19 Apr 2001 23:09:21 -0600 |
User-agent: |
Mutt/1.2.5i |
2001-04-19 Alan Modra <address@hidden>
* sysdeps/hppa/elf/initfini.c: Change dlt reg save to r3 and
generate unwind info by hand.
Index: sysdeps/hppa/elf/initfini.c
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/hppa/elf/initfini.c,v
retrieving revision 1.1
diff -u -p -r1.1 initfini.c
--- sysdeps/hppa/elf/initfini.c 2000/10/15 03:33:24 1.1
+++ sysdeps/hppa/elf/initfini.c 2001/04/20 05:01:47
@@ -59,8 +59,6 @@ __asm__ ("
.align 4
.globl _init
.type _init,@function
- .proc
- .callinfo
_init:
stw %rp,-20(%sp)
stwm %r4,64(%sp)
@@ -68,25 +66,38 @@ _init:
bl __gmon_start__,%rp
copy %r19,%r4 /* delay slot */
copy %r4,%r19
- .align 4
- .procend
/address@hidden/
/address@hidden/
- .section .init
- copy %r4,%r19
- ldw -84(%sp),%rp
- bv %r0(%rp)
- ldwm -64(%sp),%r4
.text
.align 4
.weak __gmon_start__
.type __gmon_start__,@function
+__gmon_start__:
.proc
.callinfo
-__gmon_start__:
+ .entry
bv,n %r0(%r2)
+ .exit
.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
+
/address@hidden/
/address@hidden/
@@ -94,23 +105,26 @@ __gmon_start__:
.align 4
.globl _fini
.type _fini,@function
- .proc
- .callinfo
_fini:
stw %rp,-20(%sp)
stwm %r4,64(%sp)
stw %r19,-32(%sp)
copy %r19,%r4
- .align 4
- .procend
/address@hidden/
/address@hidden/
.section .fini
- copy %r4,%r19
ldw -84(%sp),%rp
+ copy %r4,%r19
bv %r0(%rp)
+_end_fini:
ldwm -64(%sp),%r4
+
+ .section .PARISC.unwind
+ .extern _fini
+ .word _fini, _end_fini
+ .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
+
/address@hidden/
/address@hidden/
- PA initfini fixes,
Matthew Wilcox <=