2 * arch/xtensa/mm/misc.S
4 * Miscellaneous assembly functions.
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file "COPYING" in the main directory of this archive
10 * Copyright (C) 2001 - 2005 Tensilica Inc.
12 * Chris Zankel <chris@zankel.net>
15 /* Note: we might want to implement some of the loops as zero-overhead-loops,
16 * where applicable and if supported by the processor.
19 #include <linux/linkage.h>
21 #include <asm/pgtable.h>
22 #include <asm/asmmacro.h>
23 #include <asm/cacheasm.h>
25 /* clear_page (page) */
29 addi a4, a2, PAGE_SIZE
46 * copy_page (void *to, void *from)
52 addi a4, a2, PAGE_SIZE
77 * void __invalidate_icache_page(ulong start)
80 ENTRY(__invalidate_icache_page)
83 ___invalidate_icache_page a2 a3
89 * void __invalidate_dcache_page(ulong start)
92 ENTRY(__invalidate_dcache_page)
95 ___invalidate_dcache_page a2 a3
101 * void __flush_invalidate_dcache_page(ulong start)
104 ENTRY(__flush_invalidate_dcache_page)
107 ___flush_invalidate_dcache_page a2 a3
113 * void __flush_dcache_page(ulong start)
116 ENTRY(__flush_dcache_page)
119 ___flush_dcache_page a2 a3
127 * void __invalidate_icache_range(ulong start, ulong size)
130 ENTRY(__invalidate_icache_range)
133 ___invalidate_icache_range a2 a3 a4
139 * void __flush_invalidate_dcache_range(ulong start, ulong size)
142 ENTRY(__flush_invalidate_dcache_range)
145 ___flush_invalidate_dcache_range a2 a3 a4
151 * void _flush_dcache_range(ulong start, ulong size)
154 ENTRY(__flush_dcache_range)
157 ___flush_dcache_range a2 a3 a4
163 * void _invalidate_dcache_range(ulong start, ulong size)
166 ENTRY(__invalidate_dcache_range)
169 ___invalidate_dcache_range a2 a3 a4
175 * void _invalidate_icache_all(void)
178 ENTRY(__invalidate_icache_all)
181 ___invalidate_icache_all a2 a3
187 * void _flush_invalidate_dcache_all(void)
190 ENTRY(__flush_invalidate_dcache_all)
193 ___flush_invalidate_dcache_all a2 a3
199 * void _invalidate_dcache_all(void)
202 ENTRY(__invalidate_dcache_all)
205 ___invalidate_dcache_all a2 a3