Fix return pointer save and PIC register restore in __getcontext and

__setcontext on hppa.

	* sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Save return
	pointer in frame.
	* sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext): Likewise.
	Correct offset used to restore PIC register.
This commit is contained in:
John David Anglin 2017-10-01 11:58:04 -04:00
parent 388784cfdd
commit 8da92e722c
3 changed files with 12 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2017-10-01 John David Anglin <danglin@gcc.gnu.org>
* sysdeps/unix/sysv/linux/hppa/getcontext.S (__getcontext): Save return
pointer in frame.
* sysdeps/unix/sysv/linux/hppa/setcontext.S (__setcontext): Likewise.
Correct offset used to restore PIC register.
2017-09-30 John David Anglin <danglin@gcc.gnu.org>
[BZ libc/22165]

View File

@ -129,6 +129,8 @@ ENTRY(__getcontext)
fstds %fr31, 0(%r1)
/* Prologue */
stw %r2, -20(%sp)
.cfi_offset 2, -20
stwm %r4, 64(%sp)
.cfi_def_cfa_offset -64
.cfi_offset 4, 0

View File

@ -25,6 +25,8 @@
ENTRY(__setcontext)
/* Prologue */
stw %r2, -20(%sp)
.cfi_offset 2, -20
stwm %r3, 64(%sp)
.cfi_def_cfa_offset -64
.cfi_offset 3, 0
@ -151,7 +153,7 @@ ENTRY(__setcontext)
/* Epilogue */
ldw -84(%r30), %r2
#ifdef PIC
ldw -96(%r30), %r19
ldw -32(%r30), %r19
#endif
bv %r0(%r2)
ldwm -64(%r30), %r3