aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ia64/_mcount.S
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 /sysdeps/ia64/_mcount.S
parenta4c54197c2a1c465e1db26f53865794ef8fc89f7 (diff)
downloadglibc-fafee7a02c794d8452582cde56c733a320b952ea.tar
glibc-fafee7a02c794d8452582cde56c733a320b952ea.tar.gz
glibc-fafee7a02c794d8452582cde56c733a320b952ea.tar.bz2
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.
Diffstat (limited to 'sysdeps/ia64/_mcount.S')
-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)