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!
		
			
				
	
	
		
			123 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
/*
 | 
						|
 * arch/alpha/boot/head.S
 | 
						|
 *
 | 
						|
 * initial bootloader stuff..
 | 
						|
 */
 | 
						|
 | 
						|
#include <asm/system.h>
 | 
						|
 | 
						|
	.set noreorder
 | 
						|
	.globl	__start
 | 
						|
	.ent	__start
 | 
						|
__start:
 | 
						|
	br	$29,2f
 | 
						|
2:	ldgp	$29,0($29)
 | 
						|
	jsr	$26,start_kernel
 | 
						|
	call_pal PAL_halt
 | 
						|
	.end __start
 | 
						|
 | 
						|
	.align 5
 | 
						|
	.globl	wrent
 | 
						|
	.ent	wrent
 | 
						|
wrent:
 | 
						|
	.prologue 0
 | 
						|
	call_pal PAL_wrent
 | 
						|
	ret ($26)
 | 
						|
	.end wrent
 | 
						|
 | 
						|
	.align 5
 | 
						|
	.globl	wrkgp
 | 
						|
	.ent	wrkgp
 | 
						|
wrkgp:
 | 
						|
	.prologue 0
 | 
						|
	call_pal PAL_wrkgp
 | 
						|
	ret ($26)
 | 
						|
	.end wrkgp
 | 
						|
 | 
						|
	.align 5
 | 
						|
	.globl	switch_to_osf_pal
 | 
						|
	.ent	switch_to_osf_pal
 | 
						|
switch_to_osf_pal:
 | 
						|
	subq	$30,128,$30
 | 
						|
	.frame	$30,128,$26
 | 
						|
	stq	$26,0($30)
 | 
						|
	stq	$1,8($30)
 | 
						|
	stq	$2,16($30)
 | 
						|
	stq	$3,24($30)
 | 
						|
	stq	$4,32($30)
 | 
						|
	stq	$5,40($30)
 | 
						|
	stq	$6,48($30)
 | 
						|
	stq	$7,56($30)
 | 
						|
	stq	$8,64($30)
 | 
						|
	stq	$9,72($30)
 | 
						|
	stq	$10,80($30)
 | 
						|
	stq	$11,88($30)
 | 
						|
	stq	$12,96($30)
 | 
						|
	stq	$13,104($30)
 | 
						|
	stq	$14,112($30)
 | 
						|
	stq	$15,120($30)
 | 
						|
	.prologue 0
 | 
						|
 | 
						|
	stq	$30,0($17)	/* save KSP in PCB */
 | 
						|
 | 
						|
	bis	$30,$30,$20	/* a4 = KSP */
 | 
						|
	br	$17,1f
 | 
						|
 | 
						|
	ldq	$26,0($30)
 | 
						|
	ldq	$1,8($30)
 | 
						|
	ldq	$2,16($30)
 | 
						|
	ldq	$3,24($30)
 | 
						|
	ldq	$4,32($30)
 | 
						|
	ldq	$5,40($30)
 | 
						|
	ldq	$6,48($30)
 | 
						|
	ldq	$7,56($30)
 | 
						|
	ldq	$8,64($30)
 | 
						|
	ldq	$9,72($30)
 | 
						|
	ldq	$10,80($30)
 | 
						|
	ldq	$11,88($30)
 | 
						|
	ldq	$12,96($30)
 | 
						|
	ldq	$13,104($30)
 | 
						|
	ldq	$14,112($30)
 | 
						|
	ldq	$15,120($30)
 | 
						|
	addq	$30,128,$30
 | 
						|
	ret ($26)
 | 
						|
1:	call_pal PAL_swppal
 | 
						|
	.end	switch_to_osf_pal
 | 
						|
 | 
						|
	.align 3
 | 
						|
	.globl	tbi
 | 
						|
	.ent	tbi
 | 
						|
tbi:
 | 
						|
	.prologue 0
 | 
						|
	call_pal PAL_tbi
 | 
						|
	ret	($26)
 | 
						|
	.end tbi
 | 
						|
 | 
						|
	.align 3
 | 
						|
	.globl	halt
 | 
						|
	.ent	halt
 | 
						|
halt:
 | 
						|
	.prologue 0
 | 
						|
	call_pal PAL_halt
 | 
						|
	.end halt
 | 
						|
 | 
						|
/* $16 - new stack page */
 | 
						|
	.align 3
 | 
						|
	.globl	move_stack
 | 
						|
	.ent	move_stack
 | 
						|
move_stack:
 | 
						|
	.prologue 0
 | 
						|
	lda	$0, 0x1fff($31)
 | 
						|
	and	$0, $30, $1			/* Stack offset */
 | 
						|
	or	$1, $16, $16			/* New stack pointer */
 | 
						|
	mov	$30, $1
 | 
						|
	mov	$16, $2
 | 
						|
1:	ldq	$3, 0($1)			/* Move the stack */
 | 
						|
	addq	$1, 8, $1
 | 
						|
	stq	$3, 0($2)
 | 
						|
	and	$0, $1, $4
 | 
						|
	addq	$2, 8, $2
 | 
						|
	bne	$4, 1b
 | 
						|
	mov	$16, $30
 | 
						|
	ret	($26)
 | 
						|
	.end move_stack
 |