blob: 0b7dce49ef140677bfb89397e4ae06edf60fa9fe (
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
|
/*
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.
memccpy.S
i386 assembler implementation of memccpy(3)
*/
.text
.global memccpy
.type memccpy,@function
memccpy:
pushl %esi
pushl %edi
movl %esp, %ecx
movl 0x0c(%ecx), %edi
movl 0x10(%ecx), %esi
movb 0x14(%ecx), %dl
movl 0x18(%ecx), %ecx
cld
.Lloop:
lodsb
stosb
cmp %al, %dl
jz .Lout
decl %ecx
jnz .Lloop
xorl %edi, %edi
.Lout:
movl %edi, %eax
popl %edi
popl %esi
ret
.Lende:
.size memccpy,.Lende-memccpy
|