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