summaryrefslogtreecommitdiff
path: root/sysdeps/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/alpha')
-rw-r--r--sysdeps/alpha/dl-machine.h139
1 files changed, 93 insertions, 46 deletions
diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
index b63661f6f3..d351e9dccc 100644
--- a/sysdeps/alpha/dl-machine.h
+++ b/sysdeps/alpha/dl-machine.h
@@ -134,31 +134,55 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
.globl " #tramp_name "
.ent " #tramp_name "
" #tramp_name ":
- lda $sp, -168($sp)
- .frame $sp, 168, $26
+ lda $sp, -44*8($sp)
+ .frame $sp, 44*8, $26
/* Preserve all integer registers that C normally doesn't. */
- stq $26, 0($sp)
- stq $0, 8($sp)
- stq $1, 16($sp)
- stq $2, 24($sp)
- stq $3, 32($sp)
- stq $4, 40($sp)
- stq $5, 48($sp)
- stq $6, 56($sp)
- stq $7, 64($sp)
- stq $8, 72($sp)
- stq $16, 80($sp)
- stq $17, 88($sp)
- stq $18, 96($sp)
- stq $19, 104($sp)
- stq $20, 112($sp)
- stq $21, 120($sp)
- stq $22, 128($sp)
- stq $23, 136($sp)
- stq $24, 144($sp)
- stq $25, 152($sp)
- stq $29, 160($sp)
- .mask 0x27ff01ff, -168
+ stq $26, 0*8($sp)
+ stq $0, 1*8($sp)
+ stq $1, 2*8($sp)
+ stq $2, 3*8($sp)
+ stq $3, 4*8($sp)
+ stq $4, 5*8($sp)
+ stq $5, 6*8($sp)
+ stq $6, 7*8($sp)
+ stq $7, 8*8($sp)
+ stq $8, 9*8($sp)
+ stq $16, 10*8($sp)
+ stq $17, 11*8($sp)
+ stq $18, 12*8($sp)
+ stq $19, 13*8($sp)
+ stq $20, 14*8($sp)
+ stq $21, 15*8($sp)
+ stq $22, 16*8($sp)
+ stq $23, 17*8($sp)
+ stq $24, 18*8($sp)
+ stq $25, 19*8($sp)
+ stq $29, 20*8($sp)
+ stt $f0, 21*8($sp)
+ stt $f1, 22*8($sp)
+ stt $f10, 23*8($sp)
+ stt $f11, 24*8($sp)
+ stt $f12, 25*8($sp)
+ stt $f13, 26*8($sp)
+ stt $f14, 27*8($sp)
+ stt $f15, 28*8($sp)
+ stt $f16, 29*8($sp)
+ stt $f17, 30*8($sp)
+ stt $f18, 31*8($sp)
+ stt $f19, 32*8($sp)
+ stt $f20, 33*8($sp)
+ stt $f21, 34*8($sp)
+ stt $f22, 35*8($sp)
+ stt $f23, 36*8($sp)
+ stt $f24, 37*8($sp)
+ stt $f25, 38*8($sp)
+ stt $f26, 39*8($sp)
+ stt $f27, 40*8($sp)
+ stt $f28, 41*8($sp)
+ stt $f29, 42*8($sp)
+ stt $f30, 43*8($sp)
+ .mask 0x27ff01ff, -44*8
+ .fmask 0xfffffc03, -(44-21)*8
/* Set up our $gp */
br $gp, .+4
ldgp $gp, 0($gp)
@@ -177,31 +201,54 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
/* Move the destination address into position. */
mov $0, $27
/* Restore program registers. */
- ldq $26, 0($sp)
- ldq $0, 8($sp)
- ldq $1, 16($sp)
- ldq $2, 24($sp)
- ldq $3, 32($sp)
- ldq $4, 40($sp)
- ldq $5, 48($sp)
- ldq $6, 56($sp)
- ldq $7, 64($sp)
- ldq $8, 72($sp)
- ldq $16, 80($sp)
- ldq $17, 88($sp)
- ldq $18, 96($sp)
- ldq $19, 104($sp)
- ldq $20, 112($sp)
- ldq $21, 120($sp)
- ldq $22, 128($sp)
- ldq $23, 136($sp)
- ldq $24, 144($sp)
- ldq $25, 152($sp)
- ldq $29, 160($sp)
+ ldq $26, 0*8($sp)
+ ldq $0, 1*8($sp)
+ ldq $1, 2*8($sp)
+ ldq $2, 3*8($sp)
+ ldq $3, 4*8($sp)
+ ldq $4, 5*8($sp)
+ ldq $5, 6*8($sp)
+ ldq $6, 7*8($sp)
+ ldq $7, 8*8($sp)
+ ldq $8, 9*8($sp)
+ ldq $16, 10*8($sp)
+ ldq $17, 11*8($sp)
+ ldq $18, 12*8($sp)
+ ldq $19, 13*8($sp)
+ ldq $20, 14*8($sp)
+ ldq $21, 15*8($sp)
+ ldq $22, 16*8($sp)
+ ldq $23, 17*8($sp)
+ ldq $24, 18*8($sp)
+ ldq $25, 19*8($sp)
+ ldq $29, 20*8($sp)
+ ldt $f0, 21*8($sp)
+ ldt $f1, 22*8($sp)
+ ldt $f10, 23*8($sp)
+ ldt $f11, 24*8($sp)
+ ldt $f12, 25*8($sp)
+ ldt $f13, 26*8($sp)
+ ldt $f14, 27*8($sp)
+ ldt $f15, 28*8($sp)
+ ldt $f16, 29*8($sp)
+ ldt $f17, 30*8($sp)
+ ldt $f18, 31*8($sp)
+ ldt $f19, 32*8($sp)
+ ldt $f20, 33*8($sp)
+ ldt $f21, 34*8($sp)
+ ldt $f22, 35*8($sp)
+ ldt $f23, 36*8($sp)
+ ldt $f24, 37*8($sp)
+ ldt $f25, 38*8($sp)
+ ldt $f26, 39*8($sp)
+ ldt $f27, 40*8($sp)
+ ldt $f28, 41*8($sp)
+ ldt $f29, 42*8($sp)
+ ldt $f30, 43*8($sp)
/* Flush the Icache after having modified the .plt code. */
" #IMB "
/* Clean up and turn control to the destination */
- lda $sp, 168($sp)
+ lda $sp, 44*8($sp)
jmp $31, ($27)
.end " #tramp_name)