18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * arch/alpha/lib/dbg_stackkill.S 48c2ecf20Sopenharmony_ci * Contributed by Richard Henderson (rth@cygnus.com) 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Clobber the balance of the kernel stack, hoping to catch 78c2ecf20Sopenharmony_ci * uninitialized local variables in the act. 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <asm/asm-offsets.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci .text 138c2ecf20Sopenharmony_ci .set noat 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci .align 5 168c2ecf20Sopenharmony_ci .globl _mcount 178c2ecf20Sopenharmony_ci .ent _mcount 188c2ecf20Sopenharmony_ci_mcount: 198c2ecf20Sopenharmony_ci .frame $30, 0, $28, 0 208c2ecf20Sopenharmony_ci .prologue 0 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci ldi $0, 0xdeadbeef 238c2ecf20Sopenharmony_ci lda $2, -STACK_SIZE 248c2ecf20Sopenharmony_ci sll $0, 32, $1 258c2ecf20Sopenharmony_ci and $30, $2, $2 268c2ecf20Sopenharmony_ci or $0, $1, $0 278c2ecf20Sopenharmony_ci lda $2, TASK_SIZE($2) 288c2ecf20Sopenharmony_ci cmpult $2, $30, $1 298c2ecf20Sopenharmony_ci beq $1, 2f 308c2ecf20Sopenharmony_ci1: stq $0, 0($2) 318c2ecf20Sopenharmony_ci addq $2, 8, $2 328c2ecf20Sopenharmony_ci cmpult $2, $30, $1 338c2ecf20Sopenharmony_ci bne $1, 1b 348c2ecf20Sopenharmony_ci2: ret ($28) 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci .end _mcount 37