⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asm_utils.s

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 S
字号:
/* *  asm_utils.s * *  $Id: asm_utils.S,v 1.2 2002/04/18 20:55:37 joel Exp $ * *  Copyright (C) 1999 Eric Valette (valette@crf.canon.fr) * *  This file contains the low-level support for moving exception *  exception code to appropriate location. * */#include <asm.h>#include <rtems/score/cpu.h>#include <libcpu/io.h>	.globl  codemovecodemove:	.type	codemove,@function/* r3 dest, r4 src, r5 length in bytes, r6 cachelinesize */	cmplw	cr1,r3,r4	addi	r0,r5,3	srwi.	r0,r0,2	beq	cr1,4f	/* In place copy is not necessary */	beq	7f	/* Protect against 0 count */	mtctr	r0	bge	cr1,2f		la	r8,-4(r4)	la	r7,-4(r3)1:	lwzu	r0,4(r8)	stwu	r0,4(r7)		bdnz	1b	b	4f2:	slwi	r0,r0,2	add	r8,r4,r0	add	r7,r3,r03:	lwzu	r0,-4(r8)	stwu	r0,-4(r7)	bdnz	3b	/* Now flush the cache:	note that we must start from a cache aligned * address. Otherwise we might miss one cache line.  */4:	cmpwi	r6,0	add	r5,r3,r5	beq	7f	/* Always flush prefetch queue in any case */ 	subi	r0,r6,1	andc	r3,r3,r0	mr	r4,r35:	cmplw	r4,r5		dcbst	0,r4	add	r4,r4,r6	blt	5b	sync		/* Wait for all dcbst to complete on bus */	mr	r4,r36:	cmplw	r4,r5		icbi	0,r4	add	r4,r4,r6	blt	6b7:	sync		/* Wait for all icbi to complete on bus */	isync	blr

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -