xref: /openbmc/linux/arch/alpha/lib/dbg_stackkill.S (revision 9d4fa1a1)
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
301:	stq	$0, 0($2)
31	addq	$2, 8, $2
32	cmpult	$2, $30, $1
33	bne	$1, 1b
342:	ret	($28)
35
36	.end _mcount
37