Merge remote-tracking branch 'leds/for-mm'
[linux-2.6/next.git] / arch / cris / arch-v32 / kernel / cacheflush.S
blob6fc3d95d7029da92c568b9ea3c75c369edee23c7
1         .global cris_flush_cache_range
2         .type   cris_flush_cache_range, @function
3 cris_flush_cache_range:
4         move.d 1024, $r12
5         cmp.d $r11, $r12
6         bhi cris_flush_1KB
7         nop
8         add.d $r10, $r11
9         ftagd [$r10]
10 cris_flush_last:
11         addq 32, $r10
12         cmp.d $r11, $r10
13         blt cris_flush_last
14         ftagd [$r10]
15         ret
16         nop
17 cris_flush_1KB:
18         ftagd [$r10]
19         addq 32, $r10
20         ftagd [$r10]
21         addq 32, $r10
22         ftagd [$r10]
23         addq 32, $r10
24         ftagd [$r10]
25         addq 32, $r10
26         ftagd [$r10]
27         addq 32, $r10
28         ftagd [$r10]
29         addq 32, $r10
30         ftagd [$r10]
31         addq 32, $r10
32         ftagd [$r10]
33         addq 32, $r10
34         ftagd [$r10]
35         addq 32, $r10
36         ftagd [$r10]
37         addq 32, $r10
38         ftagd [$r10]
39         addq 32, $r10
40         ftagd [$r10]
41         addq 32, $r10
42         ftagd [$r10]
43         addq 32, $r10
44         ftagd [$r10]
45         addq 32, $r10
46         ftagd [$r10]
47         addq 32, $r10
48         ftagd [$r10]
49         addq 32, $r10
50         ftagd [$r10]
51         addq 32, $r10
52         ftagd [$r10]
53         addq 32, $r10
54         ftagd [$r10]
55         addq 32, $r10
56         ftagd [$r10]
57         addq 32, $r10
58         ftagd [$r10]
59         addq 32, $r10
60         ftagd [$r10]
61         addq 32, $r10
62         ftagd [$r10]
63         addq 32, $r10
64         ftagd [$r10]
65         addq 32, $r10
66         ftagd [$r10]
67         addq 32, $r10
68         ftagd [$r10]
69         addq 32, $r10
70         ftagd [$r10]
71         addq 32, $r10
72         ftagd [$r10]
73         addq 32, $r10
74         ftagd [$r10]
75         addq 32, $r10
76         ftagd [$r10]
77         addq 32, $r10
78         ftagd [$r10]
79         addq 32, $r10
80         ftagd [$r10]
81         addq 32, $r10
82         ba cris_flush_cache_range
83         sub.d $r12, $r11
84         .size   cris_flush_cache_range, . - cris_flush_cache_range
86         .global cris_flush_cache
87         .type   cris_flush_cache, @function
88 cris_flush_cache:
89         moveq 0, $r10
90 cris_flush_line:
91         move.d 16*1024, $r11
92         addq 16, $r10
93         cmp.d $r10, $r11
94         blt cris_flush_line
95         fidxd [$r10]
96         ret
97         nop
98         .size   cris_flush_cache, . - cris_flush_cache