xref: /openbmc/linux/arch/alpha/lib/dbg_current.S (revision 1da177e4)
11da177e4SLinus Torvalds/*
21da177e4SLinus Torvalds * arch/alpha/lib/dbg_current.S
31da177e4SLinus Torvalds * Contributed by Richard Henderson (rth@cygnus.com)
41da177e4SLinus Torvalds *
51da177e4SLinus Torvalds * Trap if we find current not correct.
61da177e4SLinus Torvalds */
71da177e4SLinus Torvalds
81da177e4SLinus Torvalds#include <asm/pal.h>
91da177e4SLinus Torvalds
101da177e4SLinus Torvalds	.text
111da177e4SLinus Torvalds	.set noat
121da177e4SLinus Torvalds
131da177e4SLinus Torvalds	.globl _mcount
141da177e4SLinus Torvalds	.ent _mcount
151da177e4SLinus Torvalds_mcount:
161da177e4SLinus Torvalds	.frame $30, 0, $28, 0
171da177e4SLinus Torvalds	.prologue 0
181da177e4SLinus Torvalds
191da177e4SLinus Torvalds	lda	$0, -0x4000($30)
201da177e4SLinus Torvalds	cmpult	$8, $30, $1
211da177e4SLinus Torvalds	cmpule	$0, $30, $2
221da177e4SLinus Torvalds	and	$1, $2, $3
231da177e4SLinus Torvalds	bne	$3, 1f
241da177e4SLinus Torvalds
251da177e4SLinus Torvalds	call_pal PAL_bugchk
261da177e4SLinus Torvalds
271da177e4SLinus Torvalds1:	ret	$31, ($28), 1
281da177e4SLinus Torvalds
291da177e4SLinus Torvalds	.end _mcount
30