2005-04-17 06:20:36 +08:00
|
|
|
/*
|
|
|
|
* arch/alpha/lib/killstack.S
|
|
|
|
* Contributed by Richard Henderson (rth@cygnus.com)
|
|
|
|
*
|
|
|
|
* Clobber the balance of the kernel stack, hoping to catch
|
|
|
|
* uninitialized local variables in the act.
|
|
|
|
*/
|
|
|
|
|
2005-09-10 03:28:48 +08:00
|
|
|
#include <asm/asm-offsets.h>
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
.text
|
|
|
|
.set noat
|
|
|
|
|
|
|
|
.align 5
|
|
|
|
.globl _mcount
|
|
|
|
.ent _mcount
|
|
|
|
_mcount:
|
|
|
|
.frame $30, 0, $28, 0
|
|
|
|
.prologue 0
|
|
|
|
|
|
|
|
ldi $0, 0xdeadbeef
|
|
|
|
lda $2, -STACK_SIZE
|
|
|
|
sll $0, 32, $1
|
|
|
|
and $30, $2, $2
|
|
|
|
or $0, $1, $0
|
|
|
|
lda $2, TASK_SIZE($2)
|
|
|
|
cmpult $2, $30, $1
|
|
|
|
beq $1, 2f
|
|
|
|
1: stq $0, 0($2)
|
|
|
|
addq $2, 8, $2
|
|
|
|
cmpult $2, $30, $1
|
|
|
|
bne $1, 1b
|
|
|
|
2: ret ($28)
|
|
|
|
|
|
|
|
.end _mcount
|