Linux Audio

Check our new training course

Loading...
v4.6
 
  1/*
  2 * arch/alpha/boot/head.S
  3 *
  4 * initial bootloader stuff..
  5 */
  6
  7#include <asm/pal.h>
  8
  9	.set noreorder
 10	.globl	__start
 11	.ent	__start
 12__start:
 13	br	$29,2f
 142:	ldgp	$29,0($29)
 15	jsr	$26,start_kernel
 16	call_pal PAL_halt
 17	.end __start
 18
 19	.align 5
 20	.globl	wrent
 21	.ent	wrent
 22wrent:
 23	.prologue 0
 24	call_pal PAL_wrent
 25	ret ($26)
 26	.end wrent
 27
 28	.align 5
 29	.globl	wrkgp
 30	.ent	wrkgp
 31wrkgp:
 32	.prologue 0
 33	call_pal PAL_wrkgp
 34	ret ($26)
 35	.end wrkgp
 36
 37	.align 5
 38	.globl	switch_to_osf_pal
 39	.ent	switch_to_osf_pal
 40switch_to_osf_pal:
 41	subq	$30,128,$30
 42	.frame	$30,128,$26
 43	stq	$26,0($30)
 44	stq	$1,8($30)
 45	stq	$2,16($30)
 46	stq	$3,24($30)
 47	stq	$4,32($30)
 48	stq	$5,40($30)
 49	stq	$6,48($30)
 50	stq	$7,56($30)
 51	stq	$8,64($30)
 52	stq	$9,72($30)
 53	stq	$10,80($30)
 54	stq	$11,88($30)
 55	stq	$12,96($30)
 56	stq	$13,104($30)
 57	stq	$14,112($30)
 58	stq	$15,120($30)
 59	.prologue 0
 60
 61	stq	$30,0($17)	/* save KSP in PCB */
 62
 63	bis	$30,$30,$20	/* a4 = KSP */
 64	br	$17,1f
 65
 66	ldq	$26,0($30)
 67	ldq	$1,8($30)
 68	ldq	$2,16($30)
 69	ldq	$3,24($30)
 70	ldq	$4,32($30)
 71	ldq	$5,40($30)
 72	ldq	$6,48($30)
 73	ldq	$7,56($30)
 74	ldq	$8,64($30)
 75	ldq	$9,72($30)
 76	ldq	$10,80($30)
 77	ldq	$11,88($30)
 78	ldq	$12,96($30)
 79	ldq	$13,104($30)
 80	ldq	$14,112($30)
 81	ldq	$15,120($30)
 82	addq	$30,128,$30
 83	ret ($26)
 841:	call_pal PAL_swppal
 85	.end	switch_to_osf_pal
 86
 87	.align 3
 88	.globl	tbi
 89	.ent	tbi
 90tbi:
 91	.prologue 0
 92	call_pal PAL_tbi
 93	ret	($26)
 94	.end tbi
 95
 96	.align 3
 97	.globl	halt
 98	.ent	halt
 99halt:
100	.prologue 0
101	call_pal PAL_halt
102	.end halt
103
104/* $16 - new stack page */
105	.align 3
106	.globl	move_stack
107	.ent	move_stack
108move_stack:
109	.prologue 0
110	lda	$0, 0x1fff($31)
111	and	$0, $30, $1			/* Stack offset */
112	or	$1, $16, $16			/* New stack pointer */
113	mov	$30, $1
114	mov	$16, $2
1151:	ldq	$3, 0($1)			/* Move the stack */
116	addq	$1, 8, $1
117	stq	$3, 0($2)
118	and	$0, $1, $4
119	addq	$2, 8, $2
120	bne	$4, 1b
121	mov	$16, $30
122	ret	($26)
123	.end move_stack
v6.2
  1/* SPDX-License-Identifier: GPL-2.0 */
  2/*
  3 * arch/alpha/boot/head.S
  4 *
  5 * initial bootloader stuff..
  6 */
  7
  8#include <asm/pal.h>
  9
 10	.set noreorder
 11	.globl	__start
 12	.ent	__start
 13__start:
 14	br	$29,2f
 152:	ldgp	$29,0($29)
 16	jsr	$26,start_kernel
 17	call_pal PAL_halt
 18	.end __start
 19
 20	.align 5
 21	.globl	wrent
 22	.ent	wrent
 23wrent:
 24	.prologue 0
 25	call_pal PAL_wrent
 26	ret ($26)
 27	.end wrent
 28
 29	.align 5
 30	.globl	wrkgp
 31	.ent	wrkgp
 32wrkgp:
 33	.prologue 0
 34	call_pal PAL_wrkgp
 35	ret ($26)
 36	.end wrkgp
 37
 38	.align 5
 39	.globl	switch_to_osf_pal
 40	.ent	switch_to_osf_pal
 41switch_to_osf_pal:
 42	subq	$30,128,$30
 43	.frame	$30,128,$26
 44	stq	$26,0($30)
 45	stq	$1,8($30)
 46	stq	$2,16($30)
 47	stq	$3,24($30)
 48	stq	$4,32($30)
 49	stq	$5,40($30)
 50	stq	$6,48($30)
 51	stq	$7,56($30)
 52	stq	$8,64($30)
 53	stq	$9,72($30)
 54	stq	$10,80($30)
 55	stq	$11,88($30)
 56	stq	$12,96($30)
 57	stq	$13,104($30)
 58	stq	$14,112($30)
 59	stq	$15,120($30)
 60	.prologue 0
 61
 62	stq	$30,0($17)	/* save KSP in PCB */
 63
 64	bis	$30,$30,$20	/* a4 = KSP */
 65	br	$17,1f
 66
 67	ldq	$26,0($30)
 68	ldq	$1,8($30)
 69	ldq	$2,16($30)
 70	ldq	$3,24($30)
 71	ldq	$4,32($30)
 72	ldq	$5,40($30)
 73	ldq	$6,48($30)
 74	ldq	$7,56($30)
 75	ldq	$8,64($30)
 76	ldq	$9,72($30)
 77	ldq	$10,80($30)
 78	ldq	$11,88($30)
 79	ldq	$12,96($30)
 80	ldq	$13,104($30)
 81	ldq	$14,112($30)
 82	ldq	$15,120($30)
 83	addq	$30,128,$30
 84	ret ($26)
 851:	call_pal PAL_swppal
 86	.end	switch_to_osf_pal
 87
 88	.align 3
 89	.globl	tbi
 90	.ent	tbi
 91tbi:
 92	.prologue 0
 93	call_pal PAL_tbi
 94	ret	($26)
 95	.end tbi
 96
 97	.align 3
 98	.globl	halt
 99	.ent	halt
100halt:
101	.prologue 0
102	call_pal PAL_halt
103	.end halt
104
105/* $16 - new stack page */
106	.align 3
107	.globl	move_stack
108	.ent	move_stack
109move_stack:
110	.prologue 0
111	lda	$0, 0x1fff($31)
112	and	$0, $30, $1			/* Stack offset */
113	or	$1, $16, $16			/* New stack pointer */
114	mov	$30, $1
115	mov	$16, $2
1161:	ldq	$3, 0($1)			/* Move the stack */
117	addq	$1, 8, $1
118	stq	$3, 0($2)
119	and	$0, $1, $4
120	addq	$2, 8, $2
121	bne	$4, 1b
122	mov	$16, $30
123	ret	($26)
124	.end move_stack