diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-01-03 17:49:53 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-01-03 17:49:53 +0000 |
commit | eb7a5bf93aaa4be1d7c6181100ab7639e74d67f7 (patch) | |
tree | 5746fea1605ff013be9b78a1556aaad7615d664a /arch/alpha/boot/head.S | |
parent | 80ea5b1e15398277650e1197957053b5a71c08bc (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.S | 79 |
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 |