repo.or.cz
/
neatlibc.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
stdio: conversion specifiers should immediately follow length modifiers
[neatlibc.git]
/
arm
/
string.s
blob
58cb1536b021447ecd58d30c5309f31289bf3184
1
2
.global memcpy
3
memcpy
:
4
mov
r12
,
r0
5
.loop:
6
subs
r2
,
r2
,
#1
7
bmi
.ret
8
ldrb
r3
, [
r1
],
#1
9
strb
r3
, [
r0
],
#1
10
b
.loop
11
.ret:
12
mov
r0
,
r12
13
mov pc
,
lr
14
15
.global memset
16
memset
:
17
mov
r12
,
r0
18
.loop:
19
subs
r2
,
r2
,
#1
20
bmi
.ret
21
strb
r1
, [
r0
],
#1
22
b
.loop
23
.ret:
24
mov
r0
,
r12
25
mov pc
,
lr
26
27
.global memmove
28
memmove
:
29
mov
r12
,
r0
30
cmp
r0
,
r1
31
ble
.fw
32
add
r3
,
r1
,
r2
33
cmp
r0
,
r3
34
bgt
.fw
35
36
@ copying the memory in reverse order
37
add
r0
,
r0
,
r2
38
add
r1
,
r1
,
r2
39
.bw:
40
subs
r2
,
r2
,
#1
41
bmi
.ret
42
ldrb
r3
, [
r1
,
#-1]!
43
strb
r3
, [
r0
,
#-1]!
44
b
.bw
45
.fw:
46
subs
r2
,
r2
,
#1
47
bmi
.ret
48
ldrb
r3
, [
r1
],
#1
49
strb
r3
, [
r0
],
#1
50
b
.fw
51
.ret:
52
mov
r0
,
r12
53
mov pc
,
lr
54
55
.global memchr
56
memchr
:
57
subs
r2
,
r2
,
#1
58
bmi
.failed
59
ldrb
r3
, [
r0
],
#1
60
cmp
r3
,
r1
61
bne
memchr
62
b
.ret
63
.failed:
64
mov
r0
,
#0
65
.ret:
66
mov pc
,
lr
67
68
.global memcmp
69
memcmp
:
70
subs
r2
,
r2
,
#1
71
bmi
.match
72
ldrb
r3
, [
r0
],
#1
73
ldrb
r12
, [
r1
],
#1
74
subs
r3
,
r3
,
r12
75
movne
r0
,
r3
76
bne
.ret
77
b
memcmp
78
.match:
79
mov
r0
,
#0
80
.ret:
81
mov pc
,
lr
82
83
.global strlen
84
strlen
:
85
mov
r2
,
r0
86
.loop:
87
ldrb
r1
, [
r0
],
#1
88
tst
r1
,
r1
89
bne
.loop
90
sub
r0
,
r0
,
r2
91
sub
r0
,
r0
,
#1
92
mov pc
,
lr
93
94
.global strchr
95
strchr
:
96
ldrb
r2
, [
r0
],
#1
97
cmp
r1
,
r2
98
subeq
r0
,
r0
,
#1
99
beq
.ret
100
tst
r2
,
r2
101
bne
strchr
102
mov
r0
,
#0
103
.ret:
104
mov pc
,
lr
105
106
.global strcmp
107
strcmp
:
108
ldrb
r2
, [
r0
],
#1
109
ldrb
r3
, [
r1
],
#1
110
cmp
r2
,
#1
111
cmpcs
r2
,
r3
112
beq
strcmp
113
sub
r0
,
r2
,
r3
114
mov pc
,
lr
115
116
.global strcpy
117
strcpy
:
118
mov
r3
,
r0
119
.loop:
120
ldrb
r2
, [
r1
],
#1
121
strb
r2
, [
r0
],
#1
122
tst
r2
,
r2
123
bne
.loop
124
mov
r0
,
r3
125
.ret:
126
mov pc
,
lr