	.syntax	no_register_prefix

	.macro	start
	.text
	.global	main
main:
	.endm

	.macro	quit
	jump	pass
	nop
	.endm

	.macro	pass
	jump	pass
	nop
	.endm

	.macro	startnostack
	start
	.endm

	.macro	fail
	.data
99:
	.asciz " checkr3 failed"
	.text
	move.d	99b, $r10
	jsr	_fail
	nop
	.endm

	.macro	checkr3 val
	cmp.d	0x\val, $r3
	beq	100f
	nop
	.data
99:
	.asciz "checkr3 failed"
	.text
	move.d	99b, $r10
	jsr	_fail
	nop
100:
	.endm

; Test the condition codes
        .macro test_cc N Z V C
        .if \N
        bpl 9f
        nop
        .else
        bmi 9f
        nop
        .endif
        .if \Z
        bne 9f
        nop
        .else
        beq 9f
        nop
        .endif
        .if \V
        bvc 9f
        nop
        .else
        bvs 9f
        nop
        .endif
        .if \C
        bcc 9f
        nop
        .else
        bcs 9f
        nop
        .endif
        ba 8f
        nop
9:
	.data
99:
	.asciz "test_move_cc failed"
	.text
	move.d	99b, $r10
	jsr	_fail
	nop
8:
        .endm


        .macro test_move_cc N Z V C
        .if \N
        bpl 9f
        nop
        .else
        bmi 9f
        nop
        .endif
        .if \Z
        bne 9f
        nop
        .else
        beq 9f
        nop
        .endif
        ba 8f
        nop
9:
	.data
99:
	.asciz "test_move_cc failed"
	.text
	move.d	99b, $r10
	jsr	_fail
	nop
8:
        .endm
