This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Preserve r9-r11 for ia64
- To: GNU C Library <libc-alpha at sourceware dot cygnus dot com>
- Subject: Preserve r9-r11 for ia64
- From: "H . J . Lu" <hjl at valinux dot com>
- Date: Wed, 10 Jan 2001 15:12:17 -0800
r9-r11 are now language specific registers. We have to preserve
them.
--
H.J. Lu (hjl@valinux.com)
---
2001-01-10 H.J. Lu <hjl@gnu.org>
* sysdeps/ia64/dl-machine.h (TRAMPOLINE_TEMPLATE): Also
preserve r9, r10 and r11 for language specific registers.
Index: sysdeps/ia64/dl-machine.h
===================================================================
RCS file: /work/cvs/gnu/glibc/sysdeps/ia64/dl-machine.h,v
retrieving revision 1.1.1.7
diff -u -p -r1.1.1.7 dl-machine.h
--- sysdeps/ia64/dl-machine.h 2000/11/16 18:49:34 1.1.1.7
+++ sysdeps/ia64/dl-machine.h 2001/01/10 23:01:25
@@ -163,7 +163,7 @@ elf_machine_runtime_setup (struct link_m
.proc " #tramp_name "#
" #tramp_name ":
{ .mmi
- alloc loc0 = ar.pfs, 8, 3, 3, 0
+ alloc loc0 = ar.pfs, 8, 6, 3, 0
adds r2 = -144, r12
adds r3 = -128, r12
}
@@ -178,6 +178,11 @@ elf_machine_runtime_setup (struct link_m
nop.f 0
nop.b 0
}
+ { .mii
+ mov loc3 = r9 /* preserve language specific register */
+ mov loc4 = r10 /* preserve language specific register */
+ mov loc5 = r11 /* preserve language specific register */
+ }
{ .mmi
stf.spill [r2] = f8, 32
stf.spill [r3] = f9, 32
@@ -230,6 +235,11 @@ elf_machine_runtime_setup (struct link_m
ldf.fill f15 = [r3], 32
adds r12 = 160, r12
;;
+ }
+ { .mii
+ mov r9 = loc3 /* restore language specific register */
+ mov r10 = loc4 /* restore language specific register */
+ mov r11 = loc5 /* restore language specific register */
}
{ .mii
ld8 gp = [ret0]