Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/i386/memcmp.S')
-rw-r--r--newlib/libc/machine/i386/memcmp.S76
1 files changed, 0 insertions, 76 deletions
diff --git a/newlib/libc/machine/i386/memcmp.S b/newlib/libc/machine/i386/memcmp.S
deleted file mode 100644
index a8589c095..000000000
--- a/newlib/libc/machine/i386/memcmp.S
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * ====================================================
- * Copyright (C) 1998 by Cygnus Solutions. All rights reserved.
- *
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-
- #include "i386mach.h"
-
- .global SYM (memcmp)
- SOTYPE_FUNCTION(memcmp)
-
-SYM (memcmp):
-
- pushl ebp
- movl esp,ebp
- subl $16,esp
- pushl ebx
- pushl edi
- pushl esi
- movl 8(ebp),edi
- movl 12(ebp),esi
- movl 16(ebp),ecx
- cld
-
-/* check if length is zero in which case just return 0 */
-
- xorl eax,eax
- testl ecx,ecx
- jz L4
-
-#ifndef __OPTIMIZE_SIZE__
-
-/* if aligned on long boundary, compare doublewords at a time first */
-
- movl edi,eax
- orl esi,eax
- testb $3,al
- jne BYTECMP
- movl ecx,ebx
- shrl $2,ecx /* calculate number of long words to compare */
- repz
- cmpsl
- jz L5
- subl $4,esi
- subl $4,edi
- movl $4,ecx
- jmp BYTECMP
-L5:
- andl $3,ebx /* calculate number of remaining bytes */
- movl ebx,ecx
-
-#endif /* not __OPTIMIZE_SIZE__ */
-
-BYTECMP: /* compare any unaligned bytes or remainder bytes */
- repz
- cmpsb
-
-/* set output to be < 0 if less than, 0 if equal, or > 0 if greater than */
-L3:
- xorl edx,edx
- movb -1(esi),dl
- xorl eax,eax
- movb -1(edi),al
- subl edx,eax
-
-L4:
- leal -28(ebp),esp
- popl esi
- popl edi
- popl ebx
- leave
- ret