about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-03-22 09:06:17 +0000
committerUlrich Drepper <drepper@redhat.com>2005-03-22 09:06:17 +0000
commitfafee7a02c794d8452582cde56c733a320b952ea (patch)
tree01ee87c23255dd521a27c5318b04b35839c8a237
parenta4c54197c2a1c465e1db26f53865794ef8fc89f7 (diff)
downloadglibc-fafee7a02c794d8452582cde56c733a320b952ea.tar.gz
glibc-fafee7a02c794d8452582cde56c733a320b952ea.tar.xz
glibc-fafee7a02c794d8452582cde56c733a320b952ea.zip
Newer kernels don't like register-frames with more than 8 output registers. Fix this by passing original ar.pfs to _mcount_ret_helper via r3.
-rw-r--r--sysdeps/ia64/_mcount.S7
1 files changed, 4 insertions, 3 deletions
diff --git a/sysdeps/ia64/_mcount.S b/sysdeps/ia64/_mcount.S
index aa91cb5d42..8720a9c104 100644
--- a/sysdeps/ia64/_mcount.S
+++ b/sysdeps/ia64/_mcount.S
@@ -72,6 +72,7 @@ LEAF(_mcount)
 	mov b7 = loc0
 	mov rp = in2
 	;;
+	mov r3 = in0
 	mov r8 = loc2
 	mov r15 = loc3
 	mov b6 = r2
@@ -81,10 +82,10 @@ END(_mcount)
 LOCAL_LEAF(_mcount_ret_helper)
 	.prologue
 	.altrp b7
-	.save ar.pfs, r40
+	.save ar.pfs, r3
 	.body
-	alloc r2 = ar.pfs, 0, 0, 9, 0
-	mov ar.pfs = r40
+	alloc r2 = ar.pfs, 0, 0, 8, 0
+	mov ar.pfs = r3
 	br b7
 END(_mcount_ret_helper)