xref: /openbmc/linux/arch/alpha/lib/dbg_current.S (revision b2441318)
1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds/*
31da177e4SLinus Torvalds * arch/alpha/lib/dbg_current.S
41da177e4SLinus Torvalds * Contributed by Richard Henderson (rth@cygnus.com)
51da177e4SLinus Torvalds *
61da177e4SLinus Torvalds * Trap if we find current not correct.
71da177e4SLinus Torvalds */
81da177e4SLinus Torvalds
91da177e4SLinus Torvalds#include <asm/pal.h>
101da177e4SLinus Torvalds
111da177e4SLinus Torvalds	.text
121da177e4SLinus Torvalds	.set noat
131da177e4SLinus Torvalds
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, -0x4000($30)
211da177e4SLinus Torvalds	cmpult	$8, $30, $1
221da177e4SLinus Torvalds	cmpule	$0, $30, $2
231da177e4SLinus Torvalds	and	$1, $2, $3
241da177e4SLinus Torvalds	bne	$3, 1f
251da177e4SLinus Torvalds
261da177e4SLinus Torvalds	call_pal PAL_bugchk
271da177e4SLinus Torvalds
281da177e4SLinus Torvalds1:	ret	$31, ($28), 1
291da177e4SLinus Torvalds
301da177e4SLinus Torvalds	.end _mcount
31