diff options
author | Richard Henderson <rth@redhat.com> | 2001-02-22 14:57:28 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-02-22 14:57:28 -0800 |
commit | 515edc9bf896285f284228b9b798a633c06f3037 (patch) | |
tree | 672585031a3b1f4d046b07cf88274ab870906c4f /gcc | |
parent | f58c04acd70df794d50afb1cd8879e16ca73bc92 (diff) | |
download | gcc-515edc9bf896285f284228b9b798a633c06f3037.zip gcc-515edc9bf896285f284228b9b798a633c06f3037.tar.gz gcc-515edc9bf896285f284228b9b798a633c06f3037.tar.bz2 |
crtbegin.asm (.fini): Use pc-relative relocs to reach .text instead of gp-relative relocs.
* config/ia64/crtbegin.asm (.fini): Use pc-relative relocs to
reach .text instead of gp-relative relocs.
* config/ia64/crtend.asm (.init): Likewise.
From-SVN: r39986
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/ia64/crtbegin.asm | 15 | ||||
-rw-r--r-- | gcc/config/ia64/crtend.asm | 14 |
3 files changed, 21 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f980861..3a6eabc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-02-22 Richard Henderson <rth@redhat.com> + + * config/ia64/crtbegin.asm (.fini): Use pc-relative relocs to + reach .text instead of gp-relative relocs. + * config/ia64/crtend.asm (.init): Likewise. + 2001-02-22 Andreas Jaeger <aj@suse.de> * extend.texi (C++ Attributes): Fix typo. diff --git a/gcc/config/ia64/crtbegin.asm b/gcc/config/ia64/crtbegin.asm index 1b57a99..1568337 100644 --- a/gcc/config/ia64/crtbegin.asm +++ b/gcc/config/ia64/crtbegin.asm @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2001 Free Software Foundation, Inc. Contributed by Jes Sorensen, <Jes.Sorensen@cern.ch> The GNU C Library is free software; you can redistribute it and/or @@ -71,16 +71,16 @@ __dso_handle: */ .section .fini,"ax","progbits" { .mlx - movl r2 = @gprel(__do_global_dtors_aux#) - ;; + movl r2 = @pcrel(__do_global_dtors_aux# - 16) } { .mii - nop.m 0 - add r2 = r2, gp + mov r3 = ip + ;; + add r2 = r2, r3 ;; - mov b6 = r2 } - { .bbb + { .mib + mov b6 = r2 br.call.sptk.many b0 = b6 ;; } @@ -105,6 +105,7 @@ __dso_handle: } { .mfb st8 [r2] = r16 + ;; } #endif diff --git a/gcc/config/ia64/crtend.asm b/gcc/config/ia64/crtend.asm index 81f9019..3a097d7 100644 --- a/gcc/config/ia64/crtend.asm +++ b/gcc/config/ia64/crtend.asm @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2001 Free Software Foundation, Inc. Contributed by Jes Sorensen, <Jes.Sorensen@cern.ch> The GNU C Library is free software; you can redistribute it and/or @@ -41,16 +41,16 @@ __DTOR_END__: */ .section .init,"ax","progbits" { .mlx - movl r2 = @gprel(__do_global_ctors_aux#) - ;; + movl r2 = @pcrel(__do_global_ctors_aux# - 16) } { .mii - nop.m 0 - add r2 = r2, gp + mov r3 = ip + ;; + add r2 = r2, r3 ;; - mov b6 = r2 } - { .bbb + { .mib + mov b6 = r2 br.call.sptk.many b0 = b6 ;; } |