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