diff options
| author | Peter Wemm <peter@FreeBSD.org> | 2001-10-29 10:14:51 +0000 |
|---|---|---|
| committer | Peter Wemm <peter@FreeBSD.org> | 2001-10-29 10:14:51 +0000 |
| commit | 16ef3f735a4803becef5e3e39dca4bafe320af87 (patch) | |
| tree | 9183984587640d8245f4107a92726068860181ef /lib | |
| parent | 14a55adf3628d7fa359a37f14bb7bf59f6cec53f (diff) | |
Notes
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/csu/ia64/crt1.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/csu/ia64/crt1.c b/lib/csu/ia64/crt1.c index f8b02ab71e90..b12b4f31b723 100644 --- a/lib/csu/ia64/crt1.c +++ b/lib/csu/ia64/crt1.c @@ -70,7 +70,14 @@ _start(char **ap, char **argv; char **env; - __asm __volatile("movl gp=_GLOBAL_OFFSET_TABLE_"); + /* Calculate gp */ + __asm __volatile(" \ + movl gp=@gprel(1f) ; \ + ;; ; \ + 1: mov r14=ip ; \ + ;; ; \ + sub gp=r14,gp ; \ + ;; "); argc = * (long *) ap; argv = ap + 1; |
