diff options
author | Roland McGrath <roland@gnu.org> | 1995-04-12 01:03:38 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-04-12 01:03:38 +0000 |
commit | 53afa8d96790cce8fd0d0ce71307bc7ae31c15fb (patch) | |
tree | ca8c58bb02b0d0fccc45e63708a775836c1cbe7e /sysdeps/i386/add_n.S | |
parent | 217d85b9c89bc7d6e2c2db7fa93238a6b6f12d73 (diff) | |
download | glibc-53afa8d96790cce8fd0d0ce71307bc7ae31c15fb.tar.gz glibc-53afa8d96790cce8fd0d0ce71307bc7ae31c15fb.tar.xz glibc-53afa8d96790cce8fd0d0ce71307bc7ae31c15fb.zip |
Tue Apr 11 20:38:55 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> cvs/libc-950411
* sysdeps/i386/add_n.S [PIC]: Use self-call to avoid generating reloc. * sysdeps/i386/sub_n.S [PIC]: Likewise. * libc-symbols.h (_elf_set_element) [PIC]: Don't make the element word `const'. * Makeconfig (CPPFLAGS, CFLAGS): Fix swapped references to $(foo-$(suffix $@)). * manual/Makefile (chapters-incl): Filter out summary.texi.
Diffstat (limited to 'sysdeps/i386/add_n.S')
-rw-r--r-- | sysdeps/i386/add_n.S | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/i386/add_n.S b/sysdeps/i386/add_n.S index f528976866..02f696ae5e 100644 --- a/sysdeps/i386/add_n.S +++ b/sysdeps/i386/add_n.S @@ -53,7 +53,14 @@ C_SYMBOL_NAME(__mpn_add_n:) subl %eax,%esi /* ... by a constant when we ... */ subl %eax,%edx /* ... enter the loop */ shrl $2,%eax /* restore previous value */ +#ifdef PIC + call here +here: leal (Loop - 3 - here)(%eax,%eax,8),%eax + addl (%esp),%eax + addl $4,%esp +#else leal (Loop - 3)(%eax,%eax,8),%eax /* calc start addr in loop */ +#endif jmp *%eax /* jump into loop */ ALIGN (3) Loop: movl (%esi),%eax |