1 /* Copyright (C) 1998 Free Software Foundation, Inc.
\r
2 This file is part of the GNU C Library.
\r
3 Contributed by Philip Blundell <philb@gnu.org>
\r
5 The GNU C Library is free software; you can redistribute it and/or
\r
6 modify it under the terms of the GNU Lesser General Public
\r
7 License as published by the Free Software Foundation; either
\r
8 version 2.1 of the License, or (at your option) any later version.
\r
10 The GNU C Library is distributed in the hope that it will be useful,
\r
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
\r
13 Lesser General Public License for more details.
\r
15 You should have received a copy of the GNU Lesser General Public
\r
16 License along with the GNU C Library; if not, write to the Free
\r
17 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
\r
20 @ #include <sys/syscall.h>
\r
24 .type memset,%function
\r
29 cmp a3, $8 @ at least 8 bytes to do?
\r
31 orr a2, a2, a2, lsl $8
\r
32 orr a2, a2, a2, lsl $16
\r
34 tst a4, $3 @ aligned yet?
\r
40 cmp a3, $8 @ 8 bytes still to do?
\r
44 cmp a3, $8 @ 8 bytes still to do?
\r
48 cmp a3, $8 @ 8 bytes still to do?
\r
52 cmp a3, $8 @ 8 bytes still to do?
\r
53 stmgeia a4!, {a2, ip}
\r
57 movs a3, a3 @ anything left?
\r
60 add pc, pc, a3, lsl $2
\r
71 .size memset,.-memset;
\r