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

1990/1223/ss/l.s (diff list | history)

ss/l.s on 1990/1223
1990/1223    
#include "mem.h" 
 
TEXT	start(SB), $-4 
 
	/* get virtual, fast */ 
	/* we are executing in segment 0, mapped to pmeg 0. stack is there too */ 
	/* get virtual by mapping segment(KZERO) to pmeg 0. */ 
	MOVW	$KZERO, R1 
	MOVB	R0, (R1, 3) 
	/* now mapped correctly.  jmpl to where we want to be */ 
	MOVW	$setR30(SB), R30 
	MOVW	$startvirt(SB), R1 
	JMPL	(R1) 
	RETURN			/* can't get here */ 
 
TEXT	startvirt(SB), $-4 
 
	MOVW	$0x4000, R29 
	MOVW	$mach0(SB), R(MACH) 
	JMPL	main(SB) 
	UNIMP 
	RETURN 
 
TEXT	pc(SB), $0 
	MOVW	R15, R1 
	RETURN 
 
TEXT	setlabel(SB), $0 
	MOVW	b+0(FP), R2 
	MOVW	R29, (R2) 
	MOVW	R15, 4(R2) 
	MOVW	$0, R1 
	RETURN 
 
TEXT	gotolabel(SB), $0 
	MOVW	r+4(FP), R1 
	MOVW	b+0(FP), R2 
	MOVW	(R2), R29 
	MOVW	4(R2), R15 
	MOVW	R15, 0(R29) 
	RETURN 
 
TEXT	crash(SB), $0 
 
	MOVW	0(FP), R8		/* context */ 
	MOVW	4(FP), R9		/* segment addr */ 
	MOVW	8(FP), R10		/* segment value */ 
	MOVW	$0xFFE80118, R1 
	JMPL	(R1) 
	RETURN 
 
TEXT	putb2(SB), $0 
 
	MOVW	0(FP), R1 
	MOVW	4(FP), R2 
	MOVB	R2, (R1, 2) 
	RETURN 
 
TEXT	putw3(SB), $0 
 
	MOVW	0(FP), R1 
	MOVW	4(FP), R2 
	MOVW	R2, (R1, 3) 
	RETURN 
 
TEXT	putpmeg(SB), $0 
 
	MOVW	0(FP), R1 
	MOVW	4(FP), R2 
	MOVW	R2, (R1, 4) 
	RETURN 
 
TEXT	putwd(SB), $0 
 
	MOVW	0(FP), R1 
	MOVW	4(FP), R2 
	MOVW	R2, (R1, 0xD) 
	RETURN 
 
 
GLOBL	mach0+0(SB), $MACHSIZE 


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