xref: /openbmc/linux/arch/alpha/lib/dbg_stackcheck.S (revision b2441318)
1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds/*
3f30c2269SUwe Zeisberger * arch/alpha/lib/dbg_stackcheck.S
41da177e4SLinus Torvalds * Contributed by Richard Henderson (rth@tamu.edu)
51da177e4SLinus Torvalds *
61da177e4SLinus Torvalds * Verify that we have not overflowed the stack.  Oops if we have.
71da177e4SLinus Torvalds */
81da177e4SLinus Torvalds
9e2d5df93SSam Ravnborg#include <asm/asm-offsets.h>
101da177e4SLinus Torvalds
111da177e4SLinus Torvalds	.text
121da177e4SLinus Torvalds	.set noat
131da177e4SLinus Torvalds
141da177e4SLinus Torvalds	.align 3
151da177e4SLinus Torvalds	.globl _mcount
161da177e4SLinus Torvalds	.ent _mcount
171da177e4SLinus Torvalds_mcount:
181da177e4SLinus Torvalds	.frame $30, 0, $28, 0
191da177e4SLinus Torvalds	.prologue 0
201da177e4SLinus Torvalds
211da177e4SLinus Torvalds	lda	$0, TASK_SIZE($8)
221da177e4SLinus Torvalds	cmpult	$30, $0, $0
231da177e4SLinus Torvalds	bne	$0, 1f
241da177e4SLinus Torvalds	ret	($28)
251da177e4SLinus Torvalds1:	stq	$31, -8($31)	# oops me, damn it.
261da177e4SLinus Torvalds	br	1b
271da177e4SLinus Torvalds
281da177e4SLinus Torvalds	.end _mcount
29