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