Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1408 → Rev 1627

/drivers/ddk/string/_strncpy.S
1,27 → 1,22
# _strncpy() Author: Kees J. Bot
# 1 Jan 1994
/* _strncpy() Author: Kees J. Bot */
/* 1 Jan 1994 */
 
# char *_strncpy(char *s1, const char *s2, size_t ecx)
# Copy string s2 to s1.
#
/* char *_strncpy(char *s1, const char *s2, size_t ecx) */
/* Copy string s2 to s1. */
/* */
#include "asm.h"
 
.intel_syntax
ENTRY(_strncpy)
movl 12(%ebp), %edi /* edi = string s2 */
xorb %al, %al /* Look for a zero byte */
movl %ecx, %edx /* Save maximum count */
cld
 
.text
.globl __strncpy
.align 16
repne scasb /* Look for end of s2 */
subl %ecx, %edx /* Number of bytes in s2 including null */
xchgl %edx, %ecx
movl 12(%ebp), %esi /* esi = string s2 */
movl 8(%ebp), %edi /* edi = string s1 */
 
__strncpy:
mov edi, [ebp+12] # edi = string s2
xorb al, al # Look for a zero byte
mov edx, ecx # Save maximum count
cld
repne
scasb # Look for end of s2
sub edx, ecx # Number of bytes in s2 including null
xchg ecx, edx
mov esi, [ebp+12] # esi = string s2
mov edi, [ebp+8] # edi = string s1
rep
movsb # Copy bytes
rep movsb /* Copy bytes */
ret