forked from mirrors/linux
		
	Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
/*
 | 
						|
 *  linux/arch/m32r/mm/page.S
 | 
						|
 *
 | 
						|
 *  Clear/Copy page with CPU
 | 
						|
 *
 | 
						|
 *  Copyright (C) 2004  The Free Software Initiative of Japan
 | 
						|
 *
 | 
						|
 *  Written by Niibe Yutaka
 | 
						|
 *
 | 
						|
 * This file is subject to the terms and conditions of the GNU General Public
 | 
						|
 * License.  See the file "COPYING" in the main directory of this archive
 | 
						|
 * for more details.
 | 
						|
 *
 | 
						|
 */
 | 
						|
	.text
 | 
						|
	.global	copy_page
 | 
						|
	/*
 | 
						|
	 * copy_page (to, from)
 | 
						|
	 *
 | 
						|
	 * PAGE_SIZE = 4096-byte
 | 
						|
	 * Cache line = 16-byte
 | 
						|
	 * 16 * 256
 | 
						|
	 */
 | 
						|
	.align	4
 | 
						|
copy_page:
 | 
						|
	ldi	r2, #255
 | 
						|
	ld	r3, @r0		/* cache line allocate */
 | 
						|
	ld	r4, @r1+
 | 
						|
	ld	r5, @r1+
 | 
						|
	ld	r6, @r1+
 | 
						|
	ld	r7, @r1+
 | 
						|
	.fillinsn
 | 
						|
0:
 | 
						|
	st	r4, @r0
 | 
						|
	st	r5, @+r0
 | 
						|
	st	r6, @+r0
 | 
						|
	st	r7, @+r0
 | 
						|
	ld	r4, @r1+
 | 
						|
	addi	r0, #4
 | 
						|
	ld	r5, @r1+
 | 
						|
	ld	r6, @r1+
 | 
						|
	ld	r7, @r1+
 | 
						|
	ld	r3, @r0		/* cache line allocate */
 | 
						|
	addi	r2, #-1
 | 
						|
	bnez	r2, 0b
 | 
						|
 | 
						|
	st	r4, @r0
 | 
						|
	st	r5, @+r0
 | 
						|
	st	r6, @+r0
 | 
						|
	st	r7, @+r0
 | 
						|
	jmp	r14
 | 
						|
 | 
						|
	.text
 | 
						|
	.global	clear_page
 | 
						|
	/*
 | 
						|
	 * clear_page (to)
 | 
						|
	 *
 | 
						|
	 * PAGE_SIZE = 4096-byte
 | 
						|
	 * Cache line = 16-byte
 | 
						|
	 * 16 * 256
 | 
						|
	 */
 | 
						|
	.align	4
 | 
						|
clear_page:
 | 
						|
	ldi	r2, #255
 | 
						|
	ldi	r4, #0
 | 
						|
	ld	r3, @r0		/* cache line allocate */
 | 
						|
	.fillinsn
 | 
						|
0:
 | 
						|
	st	r4, @r0
 | 
						|
	st	r4, @+r0
 | 
						|
	st	r4, @+r0
 | 
						|
	st	r4, @+r0
 | 
						|
	addi	r0, #4
 | 
						|
	ld	r3, @r0		/* cache line allocate */
 | 
						|
	addi	r2, #-1
 | 
						|
	bnez	r2, 0b
 | 
						|
 | 
						|
	st	r4, @r0
 | 
						|
	st	r4, @+r0
 | 
						|
	st	r4, @+r0
 | 
						|
	st	r4, @+r0
 | 
						|
	jmp	r14
 |