1/* $Id: clear_page.S,v 1.1.1.1 2008/10/15 03:26:18 james26_jang Exp $ 2 * 3 * clear_page implementation of SuperH 4 * 5 * Copyright (C) 2001 Niibe Yutaka & Kaz Kojima 6 * 7 */ 8 9/* 10 * clear_page 11 * @to: P1 address 12 * 13 * void clear_page(void *to) 14 */ 15 16/* 17 * r0 --- scratch 18 * r4 --- to 19 * r5 --- to + 4096 20 */ 21#include <linux/linkage.h> 22ENTRY(clear_page) 23 mov r4,r5 24 mov.w .Llimit,r0 25 add r0,r5 26 mov #0,r0 27 ! 281: 29#if defined(__sh3__) 30 mov.l r0,@r4 31#elif defined(__SH4__) 32 movca.l r0,@r4 33 mov r4,r1 34#endif 35 add #32,r4 36 mov.l r0,@-r4 37 mov.l r0,@-r4 38 mov.l r0,@-r4 39 mov.l r0,@-r4 40 mov.l r0,@-r4 41 mov.l r0,@-r4 42 mov.l r0,@-r4 43#if defined(__SH4__) 44 ocbwb @r1 45#endif 46 cmp/eq r5,r4 47 bf/s 1b 48 add #28,r4 49 ! 50 rts 51 nop 52.Llimit: .word (4096-28) 53