Linux 2.6.13-rc4
[linux-2.6/next.git] / arch / alpha / lib / dbg_stackkill.S
blobe09f2ae1e09e36b8639c241141d5fa93df060464
1 /*
2  * arch/alpha/lib/killstack.S
3  * Contributed by Richard Henderson (rth@cygnus.com)
4  *
5  * Clobber the balance of the kernel stack, hoping to catch
6  * uninitialized local variables in the act.
7  */
9 #include <asm/asm_offsets.h>
11         .text
12         .set noat
14         .align 5
15         .globl _mcount
16         .ent _mcount
17 _mcount:
18         .frame $30, 0, $28, 0
19         .prologue 0
21         ldi     $0, 0xdeadbeef
22         lda     $2, -STACK_SIZE
23         sll     $0, 32, $1
24         and     $30, $2, $2
25         or      $0, $1, $0
26         lda     $2, TASK_SIZE($2)
27         cmpult  $2, $30, $1
28         beq     $1, 2f
29 1:      stq     $0, 0($2)
30         addq    $2, 8, $2
31         cmpult  $2, $30, $1
32         bne     $1, 1b
33 2:      ret     ($28)
35         .end _mcount