svn commit: r254027 - stable/8/sys/i386/i386

Konstantin Belousov kib at FreeBSD.org
Wed Aug 7 06:32:14 UTC 2013


Author: kib
Date: Wed Aug  7 06:32:13 2013
New Revision: 254027
URL: http://svnweb.freebsd.org/changeset/base/254027

Log:
  MFC r253328:
  Create a proper stack frame for i386 version of bcopy().

Modified:
  stable/8/sys/i386/i386/support.s
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/i386/   (props changed)

Modified: stable/8/sys/i386/i386/support.s
==============================================================================
--- stable/8/sys/i386/i386/support.s	Wed Aug  7 06:23:28 2013	(r254026)
+++ stable/8/sys/i386/i386/support.s	Wed Aug  7 06:32:13 2013	(r254027)
@@ -193,11 +193,13 @@ END(bcopyb)
  *  ws at tools.de     (Wolfgang Solfrank, TooLs GmbH) +49-228-985800
  */
 ENTRY(bcopy)
+	pushl	%ebp
+	movl	%esp,%ebp
 	pushl	%esi
 	pushl	%edi
-	movl	12(%esp),%esi
-	movl	16(%esp),%edi
-	movl	20(%esp),%ecx
+	movl	8(%ebp),%esi
+	movl	12(%ebp),%edi
+	movl	16(%ebp),%ecx
 
 	movl	%edi,%eax
 	subl	%esi,%eax
@@ -208,12 +210,13 @@ ENTRY(bcopy)
 	cld					/* nope, copy forwards */
 	rep
 	movsl
-	movl	20(%esp),%ecx
+	movl	16(%ebp),%ecx
 	andl	$3,%ecx				/* any bytes left? */
 	rep
 	movsb
 	popl	%edi
 	popl	%esi
+	popl	%ebp
 	ret
 
 	ALIGN_TEXT
@@ -226,7 +229,7 @@ ENTRY(bcopy)
 	std
 	rep
 	movsb
-	movl	20(%esp),%ecx			/* copy remainder by 32-bit words */
+	movl	16(%ebp),%ecx			/* copy remainder by 32-bit words */
 	shrl	$2,%ecx
 	subl	$3,%esi
 	subl	$3,%edi
@@ -235,6 +238,7 @@ ENTRY(bcopy)
 	popl	%edi
 	popl	%esi
 	cld
+	popl	%ebp
 	ret
 END(bcopy)
 


More information about the svn-src-all mailing list