162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * arch/alpha/lib/dbg_stackkill.S 462306a36Sopenharmony_ci * Contributed by Richard Henderson (rth@cygnus.com) 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Clobber the balance of the kernel stack, hoping to catch 762306a36Sopenharmony_ci * uninitialized local variables in the act. 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include <asm/asm-offsets.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci .text 1362306a36Sopenharmony_ci .set noat 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci .align 5 1662306a36Sopenharmony_ci .globl _mcount 1762306a36Sopenharmony_ci .ent _mcount 1862306a36Sopenharmony_ci_mcount: 1962306a36Sopenharmony_ci .frame $30, 0, $28, 0 2062306a36Sopenharmony_ci .prologue 0 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci ldi $0, 0xdeadbeef 2362306a36Sopenharmony_ci lda $2, -STACK_SIZE 2462306a36Sopenharmony_ci sll $0, 32, $1 2562306a36Sopenharmony_ci and $30, $2, $2 2662306a36Sopenharmony_ci or $0, $1, $0 2762306a36Sopenharmony_ci lda $2, TASK_SIZE($2) 2862306a36Sopenharmony_ci cmpult $2, $30, $1 2962306a36Sopenharmony_ci beq $1, 2f 3062306a36Sopenharmony_ci1: stq $0, 0($2) 3162306a36Sopenharmony_ci addq $2, 8, $2 3262306a36Sopenharmony_ci cmpult $2, $30, $1 3362306a36Sopenharmony_ci bne $1, 1b 3462306a36Sopenharmony_ci2: ret ($28) 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci .end _mcount 37