Merge branch 'linux-4.15' of git://github.com/skeggsb/linux into drm-fixes
[sfrench/cifs-2.6.git] / arch / alpha / lib / dbg_stackkill.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * arch/alpha/lib/dbg_stackkill.S
4  * Contributed by Richard Henderson (rth@cygnus.com)
5  *
6  * Clobber the balance of the kernel stack, hoping to catch
7  * uninitialized local variables in the act.
8  */
9
10 #include <asm/asm-offsets.h>
11
12         .text
13         .set noat
14
15         .align 5
16         .globl _mcount
17         .ent _mcount
18 _mcount:
19         .frame $30, 0, $28, 0
20         .prologue 0
21
22         ldi     $0, 0xdeadbeef
23         lda     $2, -STACK_SIZE
24         sll     $0, 32, $1
25         and     $30, $2, $2
26         or      $0, $1, $0
27         lda     $2, TASK_SIZE($2)
28         cmpult  $2, $30, $1
29         beq     $1, 2f
30 1:      stq     $0, 0($2)
31         addq    $2, 8, $2
32         cmpult  $2, $30, $1
33         bne     $1, 1b
34 2:      ret     ($28)
35
36         .end _mcount