File:
[DVB] /
dietlibc /
i386 /
strcmp.S
Revision
1.7:
download - view:
text,
annotated -
select for diffs
Mon Oct 29 15:09:33 2001 UTC (22 years, 7 months ago) by
olaf
Branches:
MAIN
CVS tags:
finnland_test_200301,
branch_rc14_fieldtest_finnland,
branch_rc13_fieldtest_finnland,
branch_rc12_fieldtest_finnland,
branch_rc10_fieldtest_finnland,
RELEASE_finnland_200301_1,
RC12_FIELDTEST_FINNLAND,
RC10_FIELDTEST_FINNLAND,
HEAD
fixed some function-types... (now the symbol-tables in the *.so are correct)
.text
.global strcmp
.type strcmp,@function
.weak strcoll
.type strcoll,@function
#ifdef HIGH_PERFORMANCE
.align 16
#endif
.Ldiff:
movzbl (%edx), %ecx
subl %ecx, %eax # (unsigned char)*p - (unsigned char)*q, so wie die Original libc
ret # und ohne Überlaufprobleme:
# (int) ((signed char)c - (signed char)d) != (int)(signed char) ((unsigned char)c - (unsigned char)d)
# c = 'ä', d = 'e': left expression: -129, right expression: 127
strcoll:
strcmp:
movl 4(%esp), %ecx
movl 8(%esp), %edx
xorl %eax, %eax
.Lloop: # Schleifenanfang liegt genau auf Modulanfang + 0x10, damit alignbar
movb (%ecx), %al
cmpb (%edx), %al
jnz .Ldiff
incl %edx
incl %ecx
testb %al, %al
jnz .Lloop
ret
LinuxTV legacy CVS <linuxtv.org/cvs>