summaryrefslogtreecommitdiff
path: root/lib/csu/alpha
diff options
context:
space:
mode:
authorPhilip Guenther <guenther@cvs.openbsd.org>2018-11-22 21:37:31 +0000
committerPhilip Guenther <guenther@cvs.openbsd.org>2018-11-22 21:37:31 +0000
commit471845a341fceabc401fe7f6d2ca619b1116dc17 (patch)
treef232d6064154369df1d6cde9c59ba4110618e59d /lib/csu/alpha
parentccb3815c70643d0344d2398bd4d610cf33cb4b4d (diff)
Make alpha less special: _dl_boot_bind() is written to complete
relocation of ld.so's GOT without using it, so _reloc_alpha_got() merely made the call to _dl_boot_bind() from asm simpler...while itself being a call that required special handling. diff and muild baking by miod@ ok guenther@
Diffstat (limited to 'lib/csu/alpha')
-rw-r--r--lib/csu/alpha/md_init.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/csu/alpha/md_init.h b/lib/csu/alpha/md_init.h
index 27b5c133547..715261459cb 100644
--- a/lib/csu/alpha/md_init.h
+++ b/lib/csu/alpha/md_init.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: md_init.h,v 1.9 2017/08/11 20:13:30 guenther Exp $ */
+/* $OpenBSD: md_init.h,v 1.10 2018/11/22 21:37:29 guenther Exp $ */
/*-
* Copyright (c) 2001 Ross Harvey
* All rights reserved.
@@ -81,19 +81,17 @@
" mov $16, $9 \n" \
" br $11, L2 \n" \
"L2: ldiq $12, L2 \n" \
- " subq $11, $12, $11 \n" \
- " mov $11, $17 \n" \
+ " subq $11, $12, $10 \n" \
" lda $6, _DYNAMIC \n" \
- " addq $11, $6, $16 \n" \
- " mov $16, $15 \n" \
- " bsr $26, _reloc_alpha_got \n" \
+ " addq $10, $6, $15 \n" \
" lda $sp, -80($sp) \n" \
" mov $9, $16 \n" \
" lda $11, 0($sp) \n" \
" mov $11, $17 \n" \
" mov $15, $18 \n" \
- " jsr $26, _dl_boot_bind \n" \
- " ldgp $gp, 0($26) \n" \
+ " lda $27, _dl_boot_bind \n" \
+ " addq $10, $27, $27 \n" \
+ " bsr $26, _dl_boot_bind \n" \
" mov $9, $16 \n" \
" mov 0, $17 \n" \
" jsr $26, ___start \n" \