movstr_i4.S revision 1.3 1 1.3 uwe /* $NetBSD: movstr_i4.S,v 1.3 2006/04/22 22:48:54 uwe Exp $ */
2 1.1 msaitoh
3 1.1 msaitoh /*-
4 1.1 msaitoh * Copyright (C) 2002 SHIMIZU Ryo. All rights reserved.
5 1.1 msaitoh *
6 1.1 msaitoh * Redistribution and use in source and binary forms, with or without
7 1.1 msaitoh * modification, are permitted provided that the following conditions
8 1.1 msaitoh * are met:
9 1.1 msaitoh * 1. Redistributions of source code must retain the above copyright
10 1.1 msaitoh * notice, this list of conditions and the following disclaimer.
11 1.1 msaitoh * 2. Redistributions in binary form must reproduce the above copyright
12 1.1 msaitoh * notice, this list of conditions and the following disclaimer in the
13 1.1 msaitoh * documentation and/or other materials provided with the distribution.
14 1.1 msaitoh * 3. The name of the author may not be used to endorse or promote products
15 1.1 msaitoh * derived from this software without specific prior written permission.
16 1.1 msaitoh *
17 1.1 msaitoh * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 1.1 msaitoh * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 1.1 msaitoh * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 1.1 msaitoh * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 1.1 msaitoh * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 1.1 msaitoh * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 1.1 msaitoh * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 1.1 msaitoh * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 1.1 msaitoh * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 1.1 msaitoh * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 1.1 msaitoh */
28 1.1 msaitoh
29 1.1 msaitoh #include <machine/asm.h>
30 1.1 msaitoh
31 1.3 uwe #ifdef PIC /* XXX: uwe */
32 1.3 uwe .hidden __movstr_i4_odd
33 1.3 uwe #endif
34 1.3 uwe
35 1.3 uwe NENTRY(__movstr_i4_odd)
36 1.1 msaitoh add #-8,r4
37 1.1 msaitoh nop
38 1.1 msaitoh odd_loop:
39 1.1 msaitoh mov.l @r5+,r0
40 1.1 msaitoh add #8,r4
41 1.1 msaitoh mov.l @r5+,r1
42 1.1 msaitoh dt r6
43 1.1 msaitoh mov.l r0,@(0,r4)
44 1.1 msaitoh bf/s odd_loop
45 1.3 uwe mov.l r1,@(4,r4)
46 1.1 msaitoh
47 1.1 msaitoh mov.l @r5+,r0
48 1.1 msaitoh mov.l @r5+,r1
49 1.1 msaitoh mov.l @r5+,r2
50 1.1 msaitoh mov.l r0,@(8,r4)
51 1.1 msaitoh mov.l r1,@(12,r4)
52 1.1 msaitoh rts
53 1.3 uwe mov.l r2,@(16,r4)
54 1.1 msaitoh
55 1.1 msaitoh
56 1.3 uwe #ifdef PIC /* XXX: uwe */
57 1.3 uwe .hidden __movstr_i4_even
58 1.3 uwe #endif
59 1.1 msaitoh
60 1.3 uwe NENTRY(__movstr_i4_even)
61 1.1 msaitoh add #-8,r4
62 1.1 msaitoh nop
63 1.1 msaitoh even_loop:
64 1.1 msaitoh mov.l @r5+,r0
65 1.1 msaitoh add #8,r4
66 1.1 msaitoh mov.l @r5+,r1
67 1.1 msaitoh dt r6
68 1.1 msaitoh mov.l r0,@(0,r4)
69 1.1 msaitoh bf/s even_loop
70 1.3 uwe mov.l r1,@(4,r4)
71 1.1 msaitoh
72 1.1 msaitoh mov.l @r5+,r0
73 1.1 msaitoh mov.l @r5+,r1
74 1.1 msaitoh mov.l r0,@(8,r4)
75 1.1 msaitoh rts
76 1.3 uwe mov.l r1,@(12,r4)
77