source: mainline/kernel/arch/arm32/src/asm.S@ 86018c1

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 86018c1 was b60c582, checked in by Martin Decky <martin@…>, 16 years ago

update for string changes

  • Property mode set to 100644
File size: 2.6 KB
Line 
1#
2# Copyright (c) 2007 Michal Kebrt
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without
6# modification, are permitted provided that the following conditions
7# are met:
8#
9# - Redistributions of source code must retain the above copyright
10# notice, this list of conditions and the following disclaimer.
11# - Redistributions in binary form must reproduce the above copyright
12# notice, this list of conditions and the following disclaimer in the
13# documentation and/or other materials provided with the distribution.
14# - The name of the author may not be used to endorse or promote products
15# derived from this software without specific prior written permission.
16#
17# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27#
28
29
30.text
31
32.global memsetb
33.global memsetw
34.global memcpy
35.global memcpy_from_uspace
36.global memcpy_to_uspace
37.global memcpy_from_uspace_failover_address
38.global memcpy_to_uspace_failover_address
39
40memsetb:
41 b _memsetb
42
43memsetw:
44 b _memsetw
45
46memcpy:
47memcpy_from_uspace:
48memcpy_to_uspace:
49 add r3, r1, #3
50 bic r3, r3, #3
51 cmp r1, r3
52 stmdb sp!, {r4, r5, lr}
53 mov r5, r0 /* save dst */
54 beq 4f
551:
56 cmp r2, #0
57 movne ip, #0
58 beq 3f
592:
60 ldrb r3, [ip, r1]
61 strb r3, [ip, r0]
62 add ip, ip, #1
63 cmp ip, r2
64 bne 2b
653:
66 mov r0, r5
67 ldmia sp!, {r4, r5, pc}
684:
69 add r3, r0, #3
70 bic r3, r3, #3
71 cmp r0, r3
72 bne 1b
73 movs r4, r2, lsr #2
74 moveq lr, r4
75 beq 6f
76 mov lr, #0
77 mov ip, lr
785:
79 ldr r3, [ip, r1]
80 add lr, lr, #1
81 cmp lr, r4
82 str r3, [ip, r0]
83 add ip, ip, #4
84 bne 5b
856:
86 ands r4, r2, #3
87 beq 3b
88 mov r3, lr, lsl #2
89 add r0, r3, r0
90 add ip, r3, r1
91 mov r2, #0
927:
93 ldrb r3, [r2, ip]
94 strb r3, [r2, r0]
95 add r2, r2, #1
96 cmp r2, r4
97 bne 7b
98 b 3b
99
100memcpy_from_uspace_failover_address:
101memcpy_to_uspace_failover_address:
102 mov r0, #0
103 ldmia sp!, {r4, r5, pc}
Note: See TracBrowser for help on using the repository browser.