##
## vbcc-PowerOpen/WarpOS version of _chkabort.c
##
## v1.1 05.01.99 phx
##	exit(20) instead exit(0)?
## v1.0 08.07.98 phx
##	Deleted definition of @_-symbols. vlink will create them on demand.
##	vbcc-WarpOS is ready for beta stage.
## v0.4 03.05.98 phx
##	A silly bug: SetSignalPPC() returns the state of *all* signals
##	and not only the masked ones. An "andi." is required.
## v0.3 10.03.98 phx
##	Prefix for TOC symbols is "@_" and not "@".
## v0.2 03.03.98 phx
##	@__chkabort in .tocd was missing.
## v0.1 28.02.98 phx
##
	.file	"_chkabort.s"

.set	_LVOSetSignalPPC,-480
.set	SIGBREAKF_CTRL_C,1<<12

	.text
	.extern	_PowerPCBase
	.extern	_exit

	.align	3
	.global	__chkabort
__chkabort:
	mflr	r0
	stw	r0,8(r1)
	stwu	r1,-24(r1)
	lwz	r3,_PowerPCBase(r2)
	li	r4,0
	li	r5,SIGBREAKF_CTRL_C
	lwz	r0,_LVOSetSignalPPC+2(r3)
	mtlr	r0
	blrl				# SetSignalPPC()
	andi.	r3,r3,SIGBREAKF_CTRL_C
	beq	.1
	li	r3,20
	bl	_exit			# exit(20), on CTRL-C
.1:	addi	r1,r1,24
	lwz	r0,8(r1)
	mtlr	r0
	blr

	.type	__chkabort,@function
	.size	__chkabort,$-__chkabort
