summaryrefslogtreecommitdiffstats
path: root/arch/alpha/boot/head.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-01-03 17:49:53 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-01-03 17:49:53 +0000
commiteb7a5bf93aaa4be1d7c6181100ab7639e74d67f7 (patch)
tree5746fea1605ff013be9b78a1556aaad7615d664a /arch/alpha/boot/head.S
parent80ea5b1e15398277650e1197957053b5a71c08bc (diff)
Merge with Linux 2.1.131 plus some more MIPS goodies.
Diffstat (limited to 'arch/alpha/boot/head.S')
-rw-r--r--arch/alpha/boot/head.S79
1 files changed, 21 insertions, 58 deletions
diff --git a/arch/alpha/boot/head.S b/arch/alpha/boot/head.S
index 9fae5301a..e3159d69d 100644
--- a/arch/alpha/boot/head.S
+++ b/arch/alpha/boot/head.S
@@ -6,28 +6,22 @@
#include <asm/system.h>
-#define halt .long PAL_halt
-
.set noreorder
.globl __start
.ent __start
__start:
- bis $31,$31,$31
- br 1f
- /* room for the initial PCB, which comes here */
- .quad 0,0,0,0,0,0,0,0
-1: br $27,2f
-2: ldgp $29,0($27)
- lda $27,start_kernel
- jsr $26,($27),start_kernel
- halt
+ 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:
- .long PAL_wrent
+ .prologue 0
+ call_pal PAL_wrent
ret ($26)
.end wrent
@@ -35,7 +29,8 @@ wrent:
.globl wrkgp
.ent wrkgp
wrkgp:
- .long PAL_wrkgp
+ .prologue 0
+ call_pal PAL_wrkgp
ret ($26)
.end wrkgp
@@ -44,6 +39,7 @@ wrkgp:
.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)
@@ -60,11 +56,12 @@ switch_to_osf_pal:
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,__do_swppal
+ br $17,1f
ldq $26,0($30)
ldq $1,8($30)
@@ -84,56 +81,22 @@ switch_to_osf_pal:
ldq $15,120($30)
addq $30,128,$30
ret ($26)
-
-__do_swppal:
- .long PAL_swppal
+1: call_pal PAL_swppal
.end switch_to_osf_pal
-.globl dispatch
-.ent dispatch
-dispatch:
- subq $30,80,$30
- stq $26,0($30)
- stq $29,8($30)
-
- stq $8,16($30)
- stq $9,24($30)
- stq $10,32($30)
- stq $11,40($30)
- stq $12,48($30)
- stq $13,56($30)
- stq $14,64($30)
- stq $15,72($30)
-
- lda $1,0x10000000 /* hwrpb */
- ldq $2,0xc0($1) /* crb offset */
- addq $2,$1,$2 /* crb */
- ldq $27,0($2) /* dispatch procedure value */
-
- ldq $2,8($27) /* dispatch call address */
- jsr $26,($2) /* call it (weird VMS call seq) */
-
- ldq $26,0($30)
- ldq $29,8($30)
-
- ldq $8,16($30)
- ldq $9,24($30)
- ldq $10,32($30)
- ldq $11,40($30)
- ldq $12,48($30)
- ldq $13,56($30)
- ldq $14,64($30)
- ldq $15,72($30)
-
- addq $30,80,$30
- ret $31,($26)
-.end dispatch
-
.align 3
.globl tbi
.ent tbi
tbi:
- .long PAL_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