summaryrefslogtreecommitdiffstats
path: root/arch/i386/lib/checksum.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-06-17 13:25:08 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-06-17 13:25:08 +0000
commit59223edaa18759982db0a8aced0e77457d10c68e (patch)
tree89354903b01fa0a447bffeefe00df3044495db2e /arch/i386/lib/checksum.S
parentdb7d4daea91e105e3859cf461d7e53b9b77454b2 (diff)
Merge with Linux 2.3.6. Sorry, this isn't tested on silicon, I don't
have a MIPS box at hand.
Diffstat (limited to 'arch/i386/lib/checksum.S')
-rw-r--r--arch/i386/lib/checksum.S12
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/i386/lib/checksum.S b/arch/i386/lib/checksum.S
index 46527a85d..904f70f90 100644
--- a/arch/i386/lib/checksum.S
+++ b/arch/i386/lib/checksum.S
@@ -117,9 +117,11 @@ csum_partial:
#else /* CPU==686 */
csum_partial:
- movl 12(%esp),%eax # Function arg: unsigned int sum
- movl 8(%esp),%ecx # Function arg: int len
- movl 4(%esp),%esi # Function arg: const unsigned char *buf
+ pushl %esi
+ pushl %ebx
+ movl 20(%esp),%eax # Function arg: unsigned int sum
+ movl 16(%esp),%ecx # Function arg: int len
+ movl 12(%esp),%esi # Function arg: const unsigned char *buf
testl $2, %esi
jnz 30f
@@ -204,6 +206,8 @@ csum_partial:
addl %ebx,%eax
adcl $0,%eax
80:
+ popl %ebx
+ popl %esi
ret
#endif /* CPU==686 */
@@ -369,7 +373,7 @@ DST( movb %cl, (%edi) )
#define ROUND1(x) \
SRC(movl x(%esi), %ebx ) ; \
- addl %ebx, %eax\n ; \
+ addl %ebx, %eax ; \
DST(movl %ebx, x(%edi) ) ;
#define ROUND(x) \