Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame^] | 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 |