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

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

1990/0227/sys/src/9/power/l.s:141,1461990/0419/sys/src/9/power/l.s:141,152 (short | long)
1990/0227    
	MOVW	4(R2), R29 
	RET 
 
1990/0419    
TEXT	gotopc(SB), $0 
 
	MOVW	0(FP), R2 
	JAL	(R2) 
	RET			/* shouldn't get here */ 
 
1990/0227    
TEXT	puttlb(SB), $4 
 
	JAL	splhi(SB) 
1990/0419/sys/src/9/power/l.s:50,551990/0424/sys/src/9/power/l.s:50,58 (short | long)
1990/0227    
	ADDU	$1, R1 
	BNE	R1, R2, clrbss 
 
1990/0424    
	MOVW	R4, _argc(SB) 
	MOVW	R5, _argv(SB) 
	MOVW	R6, _env(SB) 
1990/0227    
	JAL	main(SB) 
	JMP	(R0) 
 
1990/0424/sys/src/9/power/l.s:61,711990/0427/sys/src/9/power/l.s:61,72 (short | long)
1990/0227    
 */ 
 
TEXT	touser(SB), $-4 
1990/0427    
 
1990/0227    
	MOVW	M(STATUS), R1 
	OR	$(KUP|IEP), R1 
	MOVW	R1, M(STATUS) 
	NOOP 
	MOVW	$(USTKTOP-20), SP 
1990/0427    
	MOVW	0(FP), SP 
1990/0227    
	MOVW	$(UTZERO+32), R26	/* header appears in text */ 
	RFE	(R26) 
 
1990/0424/sys/src/9/power/l.s:146,1521990/0427/sys/src/9/power/l.s:147,156
1990/0227    
 
1990/0419    
TEXT	gotopc(SB), $0 
 
1990/0427    
	MOVW	$0, R0 
1990/0419    
	MOVW	0(FP), R2 
1990/0427    
	MOVW	_argc(SB), R4 
	MOVW	_argv(SB), R5 
1990/0419    
	JAL	(R2) 
	RET			/* shouldn't get here */ 
 
1990/0427/sys/src/9/power/l.s:8,131990/0430/sys/src/9/power/l.s:8,14 (short | long)
1990/0227    
 
/* 
 * Boot first processor 
1990/0430    
 *   - why is the processor number loaded from R0 ????? 
1990/0227    
 */ 
TEXT	start(SB), $-4 
 
1990/0427/sys/src/9/power/l.s:58,631990/0430/sys/src/9/power/l.s:59,65
1990/0227    
 
/* 
 * Take first processor into user mode 
1990/0430    
 * 	- argument is stack pointer to user 
1990/0227    
 */ 
 
TEXT	touser(SB), $-4 
1990/0427/sys/src/9/power/l.s:145,1591990/0430/sys/src/9/power/l.s:147,194
1990/0227    
	MOVW	4(R2), R29 
	RET 
 
1990/0419    
TEXT	gotopc(SB), $0 
1990/0430    
TEXT	gotopc(SB), $-4 
1990/0419    
 
1990/0427    
	MOVW	$0, R0 
1990/0419    
	MOVW	0(FP), R2 
1990/0430    
	MOVW	0(FP), R7		/* save arguments for later */ 
1990/0427    
	MOVW	_argc(SB), R4 
	MOVW	_argv(SB), R5 
1990/0419    
	JAL	(R2) 
	RET			/* shouldn't get here */ 
 
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 
 
	JMP	(R7) 
 
1990/0227    
TEXT	puttlb(SB), $4 
 
	JAL	splhi(SB) 
1990/0427/sys/src/9/power/l.s:438,4431990/0430/sys/src/9/power/l.s:473,479
1990/0227    
	RET 
 
TEXT	restfpregs(SB), $0 
1990/0430    
 
1990/0227    
	MOVW	M(STATUS), R3 
	MOVW	0(FP), R1 
	OR	$CU1, R3 
1990/0427/sys/src/9/power/l.s:464,4671990/0430/sys/src/9/power/l.s:500,598
1990/0227    
	MOVW	R2, FCR31 
	AND	$~CU1, R3 
	MOVW	R3, M(STATUS) 
1990/0430    
	RET 
 
 
TEXT icflush(SB), $-4			/* icflush(physaddr, nbytes) */ 
 
	MOVW	M(STATUS), R6 
	MOVW	0(FP), R4 
	MOVW	4(FP), R5 
	MOVW	$KSEG0, R3 
	OR	R3, R4 
	MOVW	$0, M(STATUS) 
	MOVW	$WBFLUSH, R1		/* wbflush */ 
	MOVW	0(R1), R1 
	NOOP 
	MOVW	$KSEG1, R3 
	MOVW	$icflush0(SB), R2	/* make sure PC is in uncached address space */ 
	MOVW	$(SWC|ISC), R1 
	OR	R3, R2 
	JMP	(R2) 
 
TEXT icflush0(SB), $-4 
 
	MOVW	R1, M(STATUS)		/* swap and isolate cache, splhi */ 
	MOVW	$icflush1(SB), R2 
	JMP	(R2) 
 
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 
	MOVW	$icflush2(SB), R2	/* make sure PC is in uncached address space */ 
	OR	R3, R2 
	JMP	(R2) 
 
TEXT icflush2(SB), $-4 
 
	MOVW	$0, M(STATUS)		/* swap back caches, de-isolate them, and stay splhi */ 
	NOOP				/* +++ */ 
	MOVW	R6, M(STATUS) 
	RET 
 
TEXT dcflush(SB), $-4			/* dcflush(physaddr, nbytes) */ 
 
	MOVW	M(STATUS), R6 
	MOVW	0(FP), R4 
	MOVW	4(FP), R5 
	MOVW	$KSEG0, R3 
	OR	R3, R4 
	MOVW	$0, M(STATUS) 
	MOVW	$WBFLUSH, R1 
	MOVW	0(R1), R1 
	NOOP 
	MOVW	$ISC, R1 
	MOVW	R1, M(STATUS) 
_dcflush0: 
	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, _dcflush0 
	MOVW	$0, M(STATUS) 
	NOOP				/* +++ */ 
	MOVW	R6, M(STATUS) 
1990/0227    
	RET 
1990/0430/sys/src/9/power/l.s:147,1921990/0504/sys/src/9/power/l.s:147,162 (short | long)
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) */ 
1990/0504/sys/src/9/power/l.s:405,4111990/1113/sys/src/9/power/l.s:405,411 (short | long)
1990/0227    
TEXT	rfnote(SB), $0 
	MOVW	0(FP), R26		/* 1st arg is &uregpointer */ 
	SUBU	$(BY2WD), R26, SP	/* pc hole */ 
	BNE	R26, restore 
1990/1113    
	JMP	restore 
1990/0227    
	 
 
TEXT	clrfpintr(SB), $0 
1990/1113/sys/src/9/power/l.s:8,141991/01151/sys/src/9/power/l.s:8,13 (short | long)
1990/0227    
 
/* 
 * Boot first processor 
1990/0430    
 *   - why is the processor number loaded from R0 ????? 
1990/0227    
 */ 
TEXT	start(SB), $-4 
 
1991/01151/sys/src/9/power/l.s:448,4531991/0118/sys/src/9/power/l.s:448,454 (short | long)
1990/0227    
	OR	$CU1, R3 
	MOVW	R3, M(STATUS) 
	MOVW	0x80(R1), R2 
1991/0118    
	NOOP 
1990/0227    
 
	MOVD	0x00(R1), F0 
	MOVD	0x08(R1), F2 
1991/0118/sys/src/9/power/l.s:130,1361991/0126/sys/src/9/power/l.s:130,136 (short | long)
1990/0227    
	MOVW	0(R1), R1 
	RET 
 
TEXT	setlabel(SB), $0 
1991/0126    
TEXT	setlabel(SB), $-4 
1990/0227    
 
	MOVW	0(FP), R2 
	MOVW	$0, R1 
1991/0118/sys/src/9/power/l.s:138,1441991/0126/sys/src/9/power/l.s:138,144
1990/0227    
	MOVW	R29, 4(R2) 
	RET 
 
TEXT	gotolabel(SB), $0 
1991/0126    
TEXT	gotolabel(SB), $-4 
1990/0227    
 
	MOVW	0(FP), R2 
	MOVW	$1, R1 
1991/0126/sys/src/9/power/l.s:447,4531991/0314/sys/src/9/power/l.s:447,453 (short | long)
1990/0227    
	MOVW	0(FP), R1 
	OR	$CU1, R3 
	MOVW	R3, M(STATUS) 
	MOVW	0x80(R1), R2 
1991/0314    
	MOVW	fpstat+4(FP), R2 
1991/0118    
	NOOP 
1990/0227    
 
	MOVD	0x00(R1), F0 
1991/0126/sys/src/9/power/l.s:470,4751991/0314/sys/src/9/power/l.s:470,480
1990/0227    
	MOVW	R2, FCR31 
	AND	$~CU1, R3 
	MOVW	R3, M(STATUS) 
1991/0314    
	RET 
 
TEXT	fcr31(SB), $0 
 
	MOVW	FCR31, R1 
1990/0430    
	RET 
 
1990/0504    
/* 
1991/0314/sys/src/9/power/l.s:175,1801991/0425/sys/src/9/power/l.s:175,181 (short | long)
1990/0227    
	NOOP 
	JAL	splx(SB) 
	RET 
1991/0425    
 
1990/0227    
index: 
	TLBWI 
	NOOP 
1991/0314/sys/src/9/power/l.s:238,2431991/0425/sys/src/9/power/l.s:239,290
1990/0227    
 
TEXT	vector80(SB), $-4 
 
1991/0425    
	MOVW	$exception(SB), R26 
	JMP	(R26) 
 
TEXT	vector0(SB), $-4 
 
	MOVW	$utlbmiss(SB), R26 
	MOVW	M(TLBVIRT), R27 
	SLL	$(STLBLOG-9), R27		/* delay slot fodder */ 
	JMP	(R26) 
 
TEXT	utlbmiss(SB), $-4 
 
	SRL	$(STLBLOG), R27, R26 
	XOR	R26, R27 
	AND	$((STLBSIZE-1)<<3), R27 
	MOVW	R27, M(TLBPHYS)			/* scratch register, store */ 
 
	MOVW	$((MACHADDR+4) & 0xffff0000), R26 
	MOVW	$MPID, R27 
	MOVB	3(R27), R27 
	AND	$7, R27 
	SLL	$PGSHIFT, R27 
	ADDU	R27, R26 
	 
	MOVW	M(TLBPHYS), R27			/* scratch register, load */ 
	MOVW	((MACHADDR+4) & 0xffff)(R26), R26 
	ADDU	R26, R27 
	MOVW	4(R27), R26 
	MOVW	R26, M(TLBPHYS) 
 
	MOVW	M(TLBVIRT), R26 
	MOVW	(R27), R27 
	BNE	R26, R27, stlbm 
 
	TLBP 
	MOVW	M(EPC), R27 
	MOVW	M(INDEX), R26 
	BGEZ	R26, uind 
	TLBWR 
	NOOP 
	RFE	(R27) 
uind: 
	TLBWI 
	NOOP 
	RFE	(R27)		 
stlbm:	 
1990/0227    
	MOVW	$exception(SB), R26 
	JMP	(R26) 
 
1991/0425/sys/src/9/power/l.s:246,2571991/0426/sys/src/9/power/l.s:246,258 (short | long)
1991/0425    
 
	MOVW	$utlbmiss(SB), R26 
	MOVW	M(TLBVIRT), R27 
	SLL	$(STLBLOG-9), R27		/* delay slot fodder */ 
1991/0426    
	SRL	$(6-3), R27			/* delay slot fodder, right adjust */ 
1991/0425    
	JMP	(R26) 
 
TEXT	utlbmiss(SB), $-4 
 
	SRL	$(STLBLOG), R27, R26 
1991/0426    
	SRL	$6, R27, R26			/* right adjusted vpn */ 
	SLL	$(STLBLOG-6), R27		/* left adjusted pid */ 
1991/0425    
	XOR	R26, R27 
	AND	$((STLBSIZE-1)<<3), R27 
	MOVW	R27, M(TLBPHYS)			/* scratch register, store */ 
1991/0425/sys/src/9/power/l.s:273,2891991/0426/sys/src/9/power/l.s:274,283
1991/0425    
	MOVW	(R27), R27 
	BNE	R26, R27, stlbm 
 
	TLBP 
	MOVW	M(EPC), R27 
	MOVW	M(INDEX), R26 
	BGEZ	R26, uind 
	TLBWR 
	NOOP 
1991/0426    
	MOVW	M(EPC), R27 
1991/0425    
	RFE	(R27) 
uind: 
	TLBWI 
	NOOP 
	RFE	(R27)		 
1991/0426    
 
1991/0425    
stlbm:	 
1990/0227    
	MOVW	$exception(SB), R26 
	JMP	(R26) 
1991/0426/sys/src/9/power/l.s:160,1691991/0607/sys/src/9/power/l.s:160,167 (short | long)
1990/0430    
 
1990/0227    
TEXT	puttlb(SB), $4 
 
	JAL	splhi(SB) 
	MOVW	0(FP), R2 
	MOVW	4(FP), R3 
	MOVW	R1, 4(SP) 
	MOVW	R2, M(TLBVIRT) 
	MOVW	R3, M(TLBPHYS) 
	NOOP 
1991/0426/sys/src/9/power/l.s:173,1791991/0607/sys/src/9/power/l.s:171,176
1990/0227    
	BGEZ	R4, index 
	TLBWR 
	NOOP 
	JAL	splx(SB) 
	RET 
1991/0425    
 
1990/0227    
index: 
1991/0607/sys/src/9/power/l.s:148,1611991/0705/sys/src/9/power/l.s:148,161 (short | long)
1990/0227    
 
1990/0504    
TEXT	gotopc(SB), $8 
1990/0419    
 
1991/0705    
	MOVW	$(64*1024), R1 
	MOVW	R1, 8(SP) 
	JAL	icflush(SB) 
1990/0430    
	MOVW	0(FP), R7		/* save arguments for later */ 
1990/0427    
	MOVW	_argc(SB), R4 
	MOVW	_argv(SB), R5 
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 
1991/0607/sys/src/9/power/l.s:515,6131991/0705/sys/src/9/power/l.s:515,726
1991/0314    
	MOVW	FCR31, R1 
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) */ 
1991/0705    
#define NOP	WORD	$0x0 
1990/0430    
 
1990/0504    
	MOVW	M(STATUS), R10 
	MOVW	0(FP), R8 
	MOVW	4(FP), R9 
1990/0430    
	MOVW	$KSEG0, R3 
1990/0504    
	OR	R3, R8 
1990/0430    
	MOVW	$0, M(STATUS) 
	MOVW	$WBFLUSH, R1		/* wbflush */ 
	MOVW	0(R1), R1 
	NOOP 
	MOVW	$KSEG1, R3 
	MOVW	$icflush0(SB), R2	/* make sure PC is in uncached address space */ 
	MOVW	$(SWC|ISC), R1 
	OR	R3, R2 
1991/0705    
TEXT icflush(SB), $-4 
	MOVW	0(FP), R4 
	MOVW	4(FP), R5 
	MOVW	$icflush0(SB), R2	/* Jump to uncache space */ 
	MOVW	$0xA0000000, R1 
	OR	R1, R2 
1990/0430    
	JMP	(R2) 
1991/0705    
	NOP 
1990/0430    
 
TEXT icflush0(SB), $-4 
 
	MOVW	R1, M(STATUS)		/* swap and isolate cache, splhi */ 
1991/0705    
	MOVW	$833, R12		/* cache_pass magic */ 
	MOVW	$0x10000, R9		/* icache size */ 
 
	MOVW	$0, R13 
	MOVW	M(STATUS), R11 
 
	BEQ	R9, R0, _icflush3 
	MOVW	$0x30000, R2		/* swap and isolate */ 
 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	MOVW	R2, M(STATUS) 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	 
	MOVW	R4, R8 
	MOVW	R5, R9 
	AND	$0xFFFC, R8 
	MOVW	$0x9F200000, R1 
	OR	R1, R8 
 
1990/0430    
	MOVW	$icflush1(SB), R2 
	JMP	(R2) 
1991/0705    
	NOP 
1990/0430    
 
TEXT icflush1(SB), $-4 
                 
_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 
1991/0705    
	SGT	R12, R13, R1 
	BNE	R1, _icflush2 
 
	MOVW	$0, R13 
	MOVW	R11, M(STATUS) 
	MOVW	$0x30000, R2		/* swap and isolate */ 
 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	MOVW	R2, M(STATUS) 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
 
_icflush2: 
	MOVW	R0, 0(R8) 
	MOVW	R0, 4(R8) 
	MOVW	R0, 8(R8) 
	MOVW	R0, 12(R8) 
	MOVW	R0, 16(R8) 
	MOVW	R0, 20(R8) 
	MOVW	R0, 24(R8) 
	MOVW	R0, 28(R8) 
	ADDU	$-32, R9 
	ADDU	$1, R13 
	ADDU	$32, R8 
1990/0504    
	BGTZ	R9, _icflush1 
1990/0430    
	MOVW	$icflush2(SB), R2	/* make sure PC is in uncached address space */ 
	OR	R3, R2 
1991/0705    
 
	MOVW	$icflush3(SB), R2	/* Jump to uncache space */ 
	MOVW	$0xA0000000, R1 
	OR	R1, R2 
1990/0430    
	JMP	(R2) 
1991/0705    
	NOP 
1990/0430    
 
TEXT icflush2(SB), $-4 
1991/0705    
TEXT icflush3(SB), $-4 
_icflush3: 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	MOVW	R11, M(STATUS) 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
1990/0430    
 
	MOVW	$0, M(STATUS)		/* swap back caches, de-isolate them, and stay splhi */ 
	NOOP				/* +++ */ 
1990/0504    
	MOVW	R10, M(STATUS) 
1991/0705    
	MOVW	$icflush4(SB), R2 
	JMP	(R2) 
	NOP 
 
TEXT icflush4(SB), $-4 
1990/0430    
	RET 
 
TEXT dcflush(SB), $-4			/* dcflush(physaddr, nbytes) */ 
                 
	MOVW	M(STATUS), R6 
1991/0705    
TEXT dcflush(SB), $-4 
1990/0430    
	MOVW	0(FP), R4 
	MOVW	4(FP), R5 
	MOVW	$KSEG0, R3 
	OR	R3, R4 
	MOVW	$0, M(STATUS) 
	MOVW	$WBFLUSH, R1 
	MOVW	0(R1), R1 
	NOOP 
	MOVW	$ISC, R1 
	MOVW	R1, M(STATUS) 
_dcflush0: 
	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, _dcflush0 
	MOVW	$0, M(STATUS) 
	NOOP				/* +++ */ 
	MOVW	R6, M(STATUS) 
1991/0705    
	MOVW	$dcflush0(SB), R2	/* Jump to uncache space */ 
	MOVW	$0xA0000000, R1 
	OR	R1, R2 
	JMP	(R2) 
	NOP 
 
TEXT dcflush0(SB), $-4 
 
	MOVW	$833, R12		/* cache_pass magdc */ 
	MOVW	$0x10000, R9		/* dcache size */ 
 
	MOVW	$0, R13 
	MOVW	M(STATUS), R11 
 
	BEQ	R9, R0, _dcflush3 
	MOVW	$0x10000, R2		/* isolate data cache */ 
 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	MOVW	R2, M(STATUS) 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	 
	MOVW	R4, R8 
	MOVW	R5, R9 
	AND	$0xFFFC, R8 
	MOVW	$0x9F200000, R1 
	OR	R1, R8 
 
	MOVW	$dcflush1(SB), R2 
	JMP	(R2) 
	NOP 
 
TEXT dcflush1(SB), $-4 
_dcflush1: 
	SGT	R12, R13, R1 
	BNE	R1, _dcflush2 
 
	MOVW	$0, R13 
	MOVW	R11, M(STATUS) 
	MOVW	$0x10000, R2		/* isolate data cache */ 
 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	MOVW	R2, M(STATUS) 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
 
_dcflush2: 
	MOVW	R0, 0(R8) 
	MOVW	R0, 4(R8) 
	MOVW	R0, 8(R8) 
	MOVW	R0, 12(R8) 
	MOVW	R0, 16(R8) 
	MOVW	R0, 20(R8) 
	MOVW	R0, 24(R8) 
	MOVW	R0, 28(R8) 
	ADDU	$-32, R9 
	ADDU	$1, R13 
	ADDU	$32, R8 
	BGTZ	R9, _dcflush1 
 
	MOVW	$dcflush3(SB), R2	/* Jump to uncache space */ 
	MOVW	$0xA0000000, R1 
	OR	R1, R2 
	JMP	(R2) 
	NOP 
 
TEXT dcflush3(SB), $-4 
_dcflush3: 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
	MOVW	R11, M(STATUS) 
	NOP 
	NOP 
	NOP 
	NOP 
	NOP 
 
	MOVW	$dcflush4(SB), R2 
	JMP	(R2) 
	NOP 
 
TEXT dcflush4(SB), $-4 
1990/0227    
	RET 
1991/0705/sys/src/9/power/l.s:243,2611991/0711/sys/src/9/power/l.s:243,264 (short | long)
1991/0425    
 
	MOVW	$utlbmiss(SB), R26 
	MOVW	M(TLBVIRT), R27 
1991/0426    
	SRL	$(6-3), R27			/* delay slot fodder, right adjust */ 
1991/0425    
	JMP	(R26) 
 
TEXT	utlbmiss(SB), $-4 
 
1991/0426    
	SRL	$6, R27, R26			/* right adjusted vpn */ 
	SLL	$(STLBLOG-6), R27		/* left adjusted pid */ 
1991/0711    
	MOVW	R27, R26 
	SLL	$1, R26 
	SRL	$12, R27 
1991/0425    
	XOR	R26, R27 
	AND	$((STLBSIZE-1)<<3), R27 
1991/0711    
	AND	$(STLBSIZE-1), R27 
	SLL	$8, R27 
	/* R27 = (((tlbvirt<<1)^(tlbvirt>>12)) & (STLBSIZE-1)) << 8 (8 to clear zero in TLBPHYS) */ 
1991/0425    
	MOVW	R27, M(TLBPHYS)			/* scratch register, store */ 
 
	MOVW	$((MACHADDR+4) & 0xffff0000), R26 
	MOVW	$MPID, R27 
1991/0711    
	MOVW	$((MACHADDR+4) & 0xffff0000), R26	/* get &mach[0].stb BUG */	 
	OR	$((MACHADDR+4) & 0xffff), R26 
	MOVW	$MPID, R27				/* add BY2PG*machno */ 
1991/0425    
	MOVB	3(R27), R27 
	AND	$7, R27 
	SLL	$PGSHIFT, R27 
1991/0705/sys/src/9/power/l.s:262,2681991/0711/sys/src/9/power/l.s:265,272
1991/0425    
	ADDU	R27, R26 
	 
	MOVW	M(TLBPHYS), R27			/* scratch register, load */ 
	MOVW	((MACHADDR+4) & 0xffff)(R26), R26 
1991/0711    
	MOVW	(R26), R26 
	SRL	$5, R27				/* R27 is now index * 8 */ 
1991/0425    
	ADDU	R26, R27 
	MOVW	4(R27), R26 
	MOVW	R26, M(TLBPHYS) 
1991/0705/sys/src/9/power/l.s:278,2831991/0711/sys/src/9/power/l.s:282,288
1991/0425    
stlbm:	 
1990/0227    
	MOVW	$exception(SB), R26 
	JMP	(R26) 
1991/0711    
 
1990/0227    
 
TEXT	exception(SB), $-4 
 
1991/0711/sys/src/9/power/l.s:146,1511991/0726/sys/src/9/power/l.s:146,156 (short | long)
1990/0227    
	MOVW	4(R2), R29 
	RET 
 
1991/0726    
TEXT	getcallerpc(SB), $0 
 
	MOVW	(SP), R1 
	RET 
 
1990/0504    
TEXT	gotopc(SB), $8 
1990/0419    
 
1991/0705    
	MOVW	$(64*1024), R1 
1991/0726/sys/src/9/power/l.s:99,1041991/1011/sys/src/9/power/l.s:99,105 (short | long)
1990/0227    
 
TEXT	splhi(SB), $0 
 
1991/1011    
	MOVW	R31, 8(R(MACH))	/* save PC in m->splpc */ 
1990/0227    
	MOVW	M(STATUS), R1 
	AND	$~IEC, R1, R2 
	MOVW	R2, M(STATUS) 
1991/0726/sys/src/9/power/l.s:105,1201991/1011/sys/src/9/power/l.s:106,114
1990/0227    
	NOOP 
	RET 
 
TEXT	spllo(SB), $0 
                 
	MOVW	M(STATUS), R1 
	OR	$IEC, R1, R2 
	MOVW	R2, M(STATUS) 
	NOOP 
	RET 
                 
TEXT	splx(SB), $0 
 
1991/1011    
	MOVW	R31, 8(R(MACH))	/* save PC in m->splpc */ 
1990/0227    
	MOVW	0(FP), R1 
	MOVW	M(STATUS), R2 
	AND	$IEC, R1 
1991/0726/sys/src/9/power/l.s:122,1271991/1011/sys/src/9/power/l.s:116,133
1990/0227    
	OR	R2, R1 
	MOVW	R1, M(STATUS) 
	NOOP 
1991/1011    
	RET 
 
TEXT	spllo(SB), $0 
 
	MOVW	M(STATUS), R1 
	OR	$IEC, R1, R2 
	MOVW	R2, M(STATUS) 
	NOOP 
	RET 
 
TEXT	spldone(SB), $0 
 
1990/0227    
	RET 
 
TEXT	wbflush(SB), $-4 
1991/1011/sys/src/9/power/l.s:63,731991/1208/sys/src/9/power/l.s:63,73 (short | long)
1990/0227    
 
TEXT	touser(SB), $-4 
1990/0427    
 
1991/1208    
	MOVW	R1, SP 
1990/0227    
	MOVW	M(STATUS), R1 
	OR	$(KUP|IEP), R1 
	MOVW	R1, M(STATUS) 
	NOOP 
1990/0427    
	MOVW	0(FP), SP 
1990/0227    
	MOVW	$(UTZERO+32), R26	/* header appears in text */ 
	RFE	(R26) 
 
1991/1011/sys/src/9/power/l.s:109,1151991/1208/sys/src/9/power/l.s:109,114
1990/0227    
TEXT	splx(SB), $0 
 
1991/1011    
	MOVW	R31, 8(R(MACH))	/* save PC in m->splpc */ 
1990/0227    
	MOVW	0(FP), R1 
	MOVW	M(STATUS), R2 
	AND	$IEC, R1 
	AND	$~IEC, R2 
1991/1011/sys/src/9/power/l.s:138,1551991/1208/sys/src/9/power/l.s:137,152
1990/0227    
 
1991/0126    
TEXT	setlabel(SB), $-4 
1990/0227    
 
	MOVW	0(FP), R2 
1991/1208    
	MOVW	R31, 0(R1) 
	MOVW	R29, 4(R1) 
1990/0227    
	MOVW	$0, R1 
	MOVW	R31, 0(R2) 
	MOVW	R29, 4(R2) 
	RET 
 
1991/0126    
TEXT	gotolabel(SB), $-4 
1990/0227    
 
	MOVW	0(FP), R2 
1991/1208    
	MOVW	0(R1), R31 
	MOVW	4(R1), R29 
1990/0227    
	MOVW	$1, R1 
	MOVW	0(R2), R31 
	MOVW	4(R2), R29 
	RET 
 
1991/0726    
TEXT	getcallerpc(SB), $0 
1991/1011/sys/src/9/power/l.s:159,1681991/1208/sys/src/9/power/l.s:156,166
1991/0726    
 
1990/0504    
TEXT	gotopc(SB), $8 
1990/0419    
 
1991/0705    
	MOVW	$(64*1024), R1 
	MOVW	R1, 8(SP) 
1991/1208    
	MOVW	R1, 0(FP)		/* save arguments for later */ 
	MOVW	$(64*1024), R7 
	MOVW	R7, 8(SP) 
1991/0705    
	JAL	icflush(SB) 
1990/0430    
	MOVW	0(FP), R7		/* save arguments for later */ 
1991/1208    
	MOVW	0(FP), R7 
1990/0427    
	MOVW	_argc(SB), R4 
	MOVW	_argv(SB), R5 
1990/0504    
	MOVW	_env(SB), R6 
1991/1011/sys/src/9/power/l.s:171,1851991/1208/sys/src/9/power/l.s:169,182
1990/0430    
 
1990/0227    
TEXT	puttlb(SB), $4 
 
	MOVW	0(FP), R2 
	MOVW	4(FP), R3 
	MOVW	R2, M(TLBVIRT) 
	MOVW	R3, M(TLBPHYS) 
1991/1208    
	MOVW	4(FP), R2 
	MOVW	R1, M(TLBVIRT) 
	MOVW	R2, M(TLBPHYS) 
1990/0227    
	NOOP 
	TLBP 
	NOOP 
	MOVW	M(INDEX), R4 
	BGEZ	R4, index 
1991/1208    
	MOVW	M(INDEX), R3 
	BGEZ	R3, index 
1990/0227    
	TLBWR 
	NOOP 
	RET 
1991/1011/sys/src/9/power/l.s:187,2041991/1208/sys/src/9/power/l.s:184,199
1990/0227    
index: 
	TLBWI 
	NOOP 
	JAL	splx(SB) 
	RET 
 
TEXT	puttlbx(SB), $0 
 
	MOVW	0(FP), R4 
	MOVW	4(FP), R2 
	MOVW	8(FP), R3 
	SLL	$8, R4 
1991/1208    
	SLL	$8, R1 
1990/0227    
	MOVW	R2, M(TLBVIRT) 
	MOVW	R3, M(TLBPHYS) 
	MOVW	R4, M(INDEX) 
1991/1208    
	MOVW	R1, M(INDEX) 
1990/0227    
	NOOP 
	TLBWI 
	NOOP 
1991/1011/sys/src/9/power/l.s:219,2281991/1208/sys/src/9/power/l.s:214,222
1990/0227    
 
TEXT	gettlb(SB), $0 
 
	MOVW	0(FP), R3 
	MOVW	4(FP), R4 
	SLL	$8, R3 
	MOVW	R3, M(INDEX) 
1991/1208    
	SLL	$8, R1 
	MOVW	R1, M(INDEX) 
1990/0227    
	NOOP 
	TLBR 
	NOOP 
1991/1011/sys/src/9/power/l.s:235,2431991/1208/sys/src/9/power/l.s:229,236
1990/0227    
 
TEXT	gettlbvirt(SB), $0 
 
	MOVW	0(FP), R3 
	SLL	$8, R3 
	MOVW	R3, M(INDEX) 
1991/1208    
	SLL	$8, R1 
	MOVW	R1, M(INDEX) 
1990/0227    
	NOOP 
	TLBR 
	NOOP 
1991/1011/sys/src/9/power/l.s:329,3341991/1208/sys/src/9/power/l.s:322,328
1990/0227    
	AND	$7, R1 
	SLL	$PGSHIFT, R1 
	ADDU	R1, R(MACH)			/* add offset for mach # */ 
1991/1208    
	MOVW	4(SP), R1			/* first arg for syscall, trap */ 
1990/0227    
 
	BNE	R26, notsys 
 
1991/1011/sys/src/9/power/l.s:361,3661991/1208/sys/src/9/power/l.s:355,361
1990/0227    
	SUB	$0xA0, SP 
	MOVW	R31, 0x28(SP) 
	JAL	saveregs(SB) 
1991/1208    
	MOVW	4(SP), R1		/* first arg for trap */ 
1990/0227    
	JAL	trap(SB) 
	JAL	restregs(SB) 
	MOVW	0x28(SP), R31 
1991/1011/sys/src/9/power/l.s:456,4661991/1208/sys/src/9/power/l.s:451,460
1990/0227    
	RET 
 
TEXT	rfnote(SB), $0 
	MOVW	0(FP), R26		/* 1st arg is &uregpointer */ 
1991/1208    
	MOVW	R1, R26			/* 1st arg is &uregpointer */ 
1990/0227    
	SUBU	$(BY2WD), R26, SP	/* pc hole */ 
1990/1113    
	JMP	restore 
1990/0227    
	 
                 
TEXT	clrfpintr(SB), $0 
	MOVW	FCR31, R1 
	MOVW	R1, R2 
1991/1011/sys/src/9/power/l.s:470,4761991/1208/sys/src/9/power/l.s:464,469
1990/0227    
 
TEXT	savefpregs(SB), $0 
	MOVW	M(STATUS), R3 
	MOVW	0(FP), R1 
	MOVW	FCR31, R2 
 
	MOVD	F0, 0x00(R1) 
1991/1011/sys/src/9/power/l.s:498,5041991/1208/sys/src/9/power/l.s:491,496
1990/0227    
TEXT	restfpregs(SB), $0 
1990/0430    
 
1990/0227    
	MOVW	M(STATUS), R3 
	MOVW	0(FP), R1 
	OR	$CU1, R3 
	MOVW	R3, M(STATUS) 
1991/0314    
	MOVW	fpstat+4(FP), R2 
1991/1011/sys/src/9/power/l.s:534,5401991/1208/sys/src/9/power/l.s:526,532
1991/0705    
#define NOP	WORD	$0x0 
1990/0430    
 
1991/0705    
TEXT icflush(SB), $-4 
	MOVW	0(FP), R4 
1991/1208    
	MOVW	R1, R4 
1991/0705    
	MOVW	4(FP), R5 
	MOVW	$icflush0(SB), R2	/* Jump to uncache space */ 
	MOVW	$0xA0000000, R1 
1991/1011/sys/src/9/power/l.s:638,6441991/1208/sys/src/9/power/l.s:630,636
1990/0430    
	RET 
 
1991/0705    
TEXT dcflush(SB), $-4 
1990/0430    
	MOVW	0(FP), R4 
1991/1208    
	MOVW	R1, R4 
1990/0430    
	MOVW	4(FP), R5 
1991/0705    
	MOVW	$dcflush0(SB), R2	/* Jump to uncache space */ 
	MOVW	$0xA0000000, R1 
1991/1208/sys/src/9/power/l.s:151,1571992/0222/sys/src/9/power/l.s:151,157 (short | long)
1990/0227    
 
1991/0726    
TEXT	getcallerpc(SB), $0 
 
	MOVW	(SP), R1 
1992/0222    
	MOVW	4(SP), R1 
1991/0726    
	RET 
 
1990/0504    
TEXT	gotopc(SB), $8 
1992/0222/sys/src/9/power/l.s:63,691992/0318/sys/src/9/power/l.s:63,69 (short | long)
1990/0227    
 
TEXT	touser(SB), $-4 
1990/0427    
 
1991/1208    
	MOVW	R1, SP 
1992/0318    
	MOVW	R1, SP			/* user stack pointer */ 
1990/0227    
	MOVW	M(STATUS), R1 
	OR	$(KUP|IEP), R1 
	MOVW	R1, M(STATUS) 
1992/0318/sys/src/9/power/l.s:151,1571992/0319/sys/src/9/power/l.s:151,157 (short | long)
1990/0227    
 
1991/0726    
TEXT	getcallerpc(SB), $0 
 
1992/0222    
	MOVW	4(SP), R1 
1992/0319    
	MOVW	0(SP), R1 
1991/0726    
	RET 
 
1990/0504    
TEXT	gotopc(SB), $8 
1992/0319/sys/src/9/power/l.s:93,1001992/0610/sys/src/9/power/l.s:93,100 (short | long)
1990/0227    
 
TEXT	firmware(SB), $0 
 
	MOVW	$(PROM+0x18), R1 /**/ 
/*	MOVW	$(PROM+0x00), R1 /**/ 
1992/0610    
	SLL	$3, R1 
	ADD	$PROM, R1 
1990/0227    
	JMP	(R1) 
 
TEXT	splhi(SB), $0 
1992/0610/sys/src/9/power/l.s:125,1301992/0629/sys/src/9/power/l.s:125,156 (short | long)
1991/1011    
	NOOP 
	RET 
 
1992/0629    
TEXT	muxlock(SB),$0 
 
	MOVW	R1, R2		/* sbsem */ 
	MOVW	4(FP), R3	/* lk->val */ 
 
	MOVW	M(STATUS), R5	/* splhi */ 
	AND	$~IEC, R5, R4 
	MOVW	R4, M(STATUS) 
 
	MOVW	0(R2),R4	/* grab sbsem */ 
	AND	$1, R4 
	BNE	R4, f1 
	MOVW	0(R3),R4 
	BNE	R4, f0 
 
	MOVW	$1, R1 
	MOVW	R1, 0(R3)	/* lk->val = 1 */ 
	MOVW	R0, 0(R2)	/* *sbsem = 0 */ 
	MOVW	R5, M(STATUS)	/* splx */ 
	RET 
 
f0:	MOVW	R0, 0(R2)	/* *sbsem = 0 */ 
f1:	MOVW	R5, M(STATUS)	/* splx */ 
	MOVW	R0, R1		/* return 0 */ 
	RET 
 
1991/1011    
TEXT	spldone(SB), $0 
 
1990/0227    
	RET 
1992/0629/sys/src/9/power/l.s:163,1771992/0819/sys/src/9/power/l.s:163,177 (short | long)
1990/0227    
 
1991/0126    
TEXT	setlabel(SB), $-4 
1990/0227    
 
1991/1208    
	MOVW	R31, 0(R1) 
	MOVW	R29, 4(R1) 
1992/0819    
	MOVW	R29, 0(R1) 
	MOVW	R31, 4(R1) 
1990/0227    
	MOVW	$0, R1 
	RET 
 
1991/0126    
TEXT	gotolabel(SB), $-4 
1990/0227    
 
1991/1208    
	MOVW	0(R1), R31 
	MOVW	4(R1), R29 
1992/0819    
	MOVW	0(R1), R29 
	MOVW	4(R1), R31 
1990/0227    
	MOVW	$1, R1 
	RET 
 
1992/0819/sys/src/9/power/l.s:271,2761992/0907/sys/src/9/power/l.s:271,282 (short | long)
1991/0425    
 
TEXT	vector0(SB), $-4 
 
1992/0907    
	MOVW	$((MACHADDR+368) & 0xffff0000), R26	/* get m->tlbfault BUG */	 
	OR	$((MACHADDR+368) & 0xffff), R26 
	MOVW	(R26), R27 
	ADD	$1, R27 
	MOVW	R27, (R26) 
 
1991/0425    
	MOVW	$utlbmiss(SB), R26 
	MOVW	M(TLBVIRT), R27 
	JMP	(R26) 
Too many diffs (26 > 25). Stopping.


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