# r0-r5 are used as tmps, consider them call clobbered by these macros.

	.macro START
	.data
failmsg:
	.ascii "fail\n"
passmsg:
	.ascii "pass\n"
	.text
	.global _START
_START:
	.endm

	.macro exit rc
	movw $\rc,r2
	movw $0x410,r0
	excp 8
	.endm

	.macro pass
	movw $1, r2
	movd $passmsg,(r4,r3)
	movw $5, r5
	movw $0x404, r0
	excp 8
	exit 0
	.endm

	.macro fail
	movw $1, r2
	movd $failmsg,(r4,r3)
	movw $5, r5
	movw $0x404, r0
	excp 8
	exit 1
	.endm

# Other macros know this only clobbers r0.
	.macro test_h_gr reg, val
	movw $\val,r0
	cmpw \reg, r0
	beq  test_gr
	fail
test_gr:
	.endm

	.macro test_h_grp regp, val
	movd $\val,(r1,r0)
	cmpd \regp,(r1,r0)
	beq  test_grp
	fail
test_grp:
	.endm


	.macro mvi_h_condbit val
	movw $0, r0
	movw $\val, r1
	cmpw r0, r1
	.endm

	.macro test_h_condbit val
	.if \val
	br test_c1
	fail
test_c1:
	.else
	br test_c0
	fail
test_c0:
	.endif
	.endm
