blob: 837b43c4158898f2a51726cf6fe33d95d10de69c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
/*
Copyright (C) 2002 Thomas M. Ogrisegg
This is free software. You can redistribute and
modify it under the terms of the GNU General Public
Public License.
strncpy.S
i386 assembler implementation of strncpy(3)
*/
#include "dietfeatures.h"
.text
.globl strncpy
.type strncpy,@function
strncpy:
pushl %esi
pushl %edi
movl %esp, %ecx
movl 0x0c(%ecx), %edi
movl 0x10(%ecx), %esi
movl 0x14(%ecx), %ecx
movl %edi, %edx
.Lloop:
dec %ecx
js .Lout
lodsb
stosb
or %al, %al
jnz .Lloop
#ifdef WANT_FULL_POSIX_COMPAT
repnz stosb
#endif
.Lout:
movl %edx, %eax
popl %edi
popl %esi
ret
|