summary refs log tree commit diff
path: root/sysdeps/i386/sub_n.S
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-04-12 01:03:38 +0000
committerRoland McGrath <roland@gnu.org>1995-04-12 01:03:38 +0000
commit53afa8d96790cce8fd0d0ce71307bc7ae31c15fb (patch)
treeca8c58bb02b0d0fccc45e63708a775836c1cbe7e /sysdeps/i386/sub_n.S
parent217d85b9c89bc7d6e2c2db7fa93238a6b6f12d73 (diff)
downloadglibc-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/sub_n.S')
-rw-r--r--sysdeps/i386/sub_n.S7
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/i386/sub_n.S b/sysdeps/i386/sub_n.S
index a1630d4562..63086bd7fd 100644
--- a/sysdeps/i386/sub_n.S
+++ b/sysdeps/i386/sub_n.S
@@ -53,7 +53,14 @@ C_SYMBOL_NAME(__mpn_sub_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