reactos/reactos/lib/string/i386/tcsnlen.h
KJK::Hyperion 5514f345a3 - apps/utils/tickcount/tickcount.c: corrected assertion
- include/funcs.h: declared GetScrollBarInfo
 - include/napi/teb.h: removed misleading comment about NtCurrentTeb; preparing TEB for Windows 2003-compatible FLS support
 - include/tchar.h: added _tcslen
 - include/tgetopt.h: type-generic getopt (see lib/tgetopt)
 - include/win32k/ntuser.h, subsys/win32k/ntuser/window.c, subsys/win32k/ntuser/timer.c, lib/user32/misc/timer.c, lib/user32/windows/paint.c: corrected declarations of NtUserSetTimer, NtUserKillTimer and NtUserRedrawWindow (Win32K doesn't follow the NT calling convention)
 - lib/crtdll/crtdll.def: exported ::operator new and ::operator delete
 - lib/kernel32/thread/fls.c: FLS support almost done
 - lib/ntdll/*: implemented _chkstk/_alloca_probe - some more Visual C++ programs should run now; exported NtCurrentTeb for compatibility with Windows NT 3.51 and some non-i386 architectures; removed the CRT from the linker libraries
 - lib/string/*: type-generic string functions (single, shared implementation for single-byte and Unicode variants using _t macros); corrected a bug in the i386 wcsncmp; merged strspn/strcspn; corrected non-portable code in strspn/strcspn; implemented strnlen/tcsnlen for the i386 architecture; all changes were regression-tested and compared against the Microsoft CRT
 - tools/helper.mk: libraries, dlls and drivers now depend from their DEF/EDF files

svn path=/trunk/; revision=5010
2003-07-06 23:04:19 +00:00

30 lines
354 B
C

/* $Id: tcsnlen.h,v 1.1 2003/07/06 23:04:19 hyperion Exp $
*/
#include "tchar.h"
.globl _tcsnlen
_tcsnlen:
push %edi
mov 0x8(%esp), %edi
mov 0xC(%esp), %ecx
xor %eax, %eax
test %ecx, %ecx
jz .L1
mov %ecx, %edx
cld
repne _tscas
sete %al
sub %ecx, %edx
sub %eax, %edx
mov %edx, %eax
.L1:
pop %edi
ret
/* EOF */