X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Falpha%2Fboot%2Fhead.S;h=f3d98089b3dc36c891e31327a93460121fa41c53;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=e3159d69d93a503212616351cd240262ace725f0;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/arch/alpha/boot/head.S b/arch/alpha/boot/head.S index e3159d69d..f3d98089b 100644 --- a/arch/alpha/boot/head.S +++ b/arch/alpha/boot/head.S @@ -100,3 +100,24 @@ 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