(TRAMPOLINE_TEMPLATE): Also preserve r9, r10 and r11 for language specific
authordrepper <drepper>
Wed, 10 Jan 2001 23:47:16 +0000 (23:47 +0000)
committerdrepper <drepper>
Wed, 10 Jan 2001 23:47:16 +0000 (23:47 +0000)
registers.

sysdeps/ia64/dl-machine.h

index 0b03520..17e7708 100644 (file)
@@ -163,7 +163,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
        .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_map *l, int lazy, int profile)
          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
@@ -232,6 +237,11 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
          ;;
        }
        { .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]
          mov r8 = loc2         /* restore struct value register */
          ;;