plan 9 kernel history: overview | file list | diff list

1990/0504/power/l.s (diff list | history)

1990/0430/sys/src/9/power/l.s:147,1921990/0504/sys/src/9/power/l.s:147,162 (short | long | prev | next)
1990/0227    
	MOVW	4(R2), R29 
	RET 
 
1990/0430    
TEXT	gotopc(SB), $-4 
1990/0504    
TEXT	gotopc(SB), $8 
1990/0419    
 
1990/0430    
	MOVW	0(FP), R7		/* save arguments for later */ 
1990/0427    
	MOVW	_argc(SB), R4 
	MOVW	_argv(SB), R5 
1990/0419    
                 
1990/0430    
	MOVW	$WBFLUSH, R1		/* flush write buffer */ 
	MOVW	0(R1), R1 
	NOOP 
                 
	MOVW	$KSEG1, R3		/* change to uncached address space */ 
	MOVW	$gotopc0(SB), R2 
	OR	R3, R2 
	JMP	(R2) 
TEXT gotopc0(SB), $-4 
                 
	MOVW	$(SWC|ISC), R1		/* swap and isolate cache, stay splhi */ 
	MOVW	R1, M(STATUS) 
	NOOP 
                 
	MOVW	$gotopc1(SB), R2	/* change back to cached address space */ 
	JMP	(R2) 
TEXT gotopc1(SB), $-4 
                 
	MOVW	$KSEG0, R6		/* init loop variables */ 
	MOVW	$(64*1024), R8 
_gotopc1: 
	MOVBU	R0, 0x00(R6) 
	SUB	$0x4, R8 
	ADD	$0x4, R6 
	BGTZ	R8, _gotopc1 
                 
	MOVW	$gotopc2(SB), R2	/* change to uncached address space */ 
	OR	R3, R2 
	JMP	(R2) 
TEXT gotopc2(SB), $-4 
                 
	MOVW	R0, M(STATUS)		/* put caches back, still splhi */ 
	NOOP 
                 
1990/0504    
	MOVW	_env(SB), R6 
	MOVW	R0, 4(SP) 
	MOVW	$(64*1024), R1 
	MOVW	R1, 8(SP) 
	JAL	icflush(SB) 
1990/0430    
	JMP	(R7) 
 
1990/0227    
TEXT	puttlb(SB), $4 
1990/0430/sys/src/9/power/l.s:502,5151990/0504/sys/src/9/power/l.s:472,487
1990/0227    
	MOVW	R3, M(STATUS) 
1990/0430    
	RET 
 
                 
1990/0504    
/* 
 *  we avoid using R4, R5, R6, and R7 so gotopc can call us without saving them 
 */ 
1990/0430    
TEXT icflush(SB), $-4			/* icflush(physaddr, nbytes) */ 
 
	MOVW	M(STATUS), R6 
	MOVW	0(FP), R4 
	MOVW	4(FP), R5 
1990/0504    
	MOVW	M(STATUS), R10 
	MOVW	0(FP), R8 
	MOVW	4(FP), R9 
1990/0430    
	MOVW	$KSEG0, R3 
	OR	R3, R4 
1990/0504    
	OR	R3, R8 
1990/0430    
	MOVW	$0, M(STATUS) 
	MOVW	$WBFLUSH, R1		/* wbflush */ 
	MOVW	0(R1), R1 
1990/0430/sys/src/9/power/l.s:529,5531990/0504/sys/src/9/power/l.s:501,525
1990/0430    
TEXT icflush1(SB), $-4 
 
_icflush1: 
	MOVBU	R0, 0x00(R4) 
	MOVBU	R0, 0x04(R4) 
	MOVBU	R0, 0x08(R4) 
	MOVBU	R0, 0x0C(R4) 
	MOVBU	R0, 0x10(R4) 
	MOVBU	R0, 0x14(R4) 
	MOVBU	R0, 0x18(R4) 
	MOVBU	R0, 0x1C(R4) 
	MOVBU	R0, 0x20(R4) 
	MOVBU	R0, 0x24(R4) 
	MOVBU	R0, 0x28(R4) 
	MOVBU	R0, 0x2C(R4) 
	MOVBU	R0, 0x30(R4) 
	MOVBU	R0, 0x34(R4) 
	MOVBU	R0, 0x38(R4) 
	MOVBU	R0, 0x3C(R4) 
	SUB	$0x40, R5 
	ADD	$0x40, R4 
	BGTZ	R5, _icflush1 
1990/0504    
	MOVBU	R0, 0x00(R8) 
	MOVBU	R0, 0x04(R8) 
	MOVBU	R0, 0x08(R8) 
	MOVBU	R0, 0x0C(R8) 
	MOVBU	R0, 0x10(R8) 
	MOVBU	R0, 0x14(R8) 
	MOVBU	R0, 0x18(R8) 
	MOVBU	R0, 0x1C(R8) 
	MOVBU	R0, 0x20(R8) 
	MOVBU	R0, 0x24(R8) 
	MOVBU	R0, 0x28(R8) 
	MOVBU	R0, 0x2C(R8) 
	MOVBU	R0, 0x30(R8) 
	MOVBU	R0, 0x34(R8) 
	MOVBU	R0, 0x38(R8) 
	MOVBU	R0, 0x3C(R8) 
	SUB	$0x40, R9 
	ADD	$0x40, R8 
	BGTZ	R9, _icflush1 
1990/0430    
	MOVW	$icflush2(SB), R2	/* make sure PC is in uncached address space */ 
	OR	R3, R2 
	JMP	(R2) 
1990/0430/sys/src/9/power/l.s:556,5621990/0504/sys/src/9/power/l.s:528,534
1990/0430    
 
	MOVW	$0, M(STATUS)		/* swap back caches, de-isolate them, and stay splhi */ 
	NOOP				/* +++ */ 
	MOVW	R6, M(STATUS) 
1990/0504    
	MOVW	R10, M(STATUS) 
1990/0430    
	RET 
 
TEXT dcflush(SB), $-4			/* dcflush(physaddr, nbytes) */ 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)