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