svn commit: r254028 - stable/9/sys/i386/i386
Konstantin Belousov
kib at FreeBSD.org
Wed Aug 7 06:34:01 UTC 2013
Author: kib
Date: Wed Aug 7 06:34:01 2013
New Revision: 254028
URL: http://svnweb.freebsd.org/changeset/base/254028
Log:
MFC r253328:
Create a proper stack frame for i386 version of bcopy().
Modified:
stable/9/sys/i386/i386/support.s
Directory Properties:
stable/9/sys/ (props changed)
Modified: stable/9/sys/i386/i386/support.s
==============================================================================
--- stable/9/sys/i386/i386/support.s Wed Aug 7 06:32:13 2013 (r254027)
+++ stable/9/sys/i386/i386/support.s Wed Aug 7 06:34:01 2013 (r254028)
@@ -181,11 +181,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
@@ -196,12 +198,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
@@ -214,7 +217,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
@@ -223,6 +226,7 @@ ENTRY(bcopy)
popl %edi
popl %esi
cld
+ popl %ebp
ret
END(bcopy)
More information about the svn-src-stable-9
mailing list