*** spcmp.s
* 	Single Precision Compare
*	for Alcyon C
*
*	Copyright Atari Corp. 1987,1988
*
*	void spcmp(f1,f2)
*	float f1, f2;
*
*	MDJohnson       2/15/88
***
	.include fpmacro

; spcmp(x,y)
	fpinit	spcmp
	fpidle				; wait for idle state
	move.w	#$4400,FPCMD		; x -> fp0
	ckcir	#$9504			; ready for single
	move.l	4(sp),FPOP		; write first op

	fpidle				; wait for idle state
	move.w	#$4438,FPCMD		; x == y ?
	ckcir	#$9504			; ready for single
	move.l	8(sp),FPOP		; write second op

	fpidle				; wait for idle state
	move.w	#$A800,FPCMD
	ckcir	#$B104			; ready for single
	move.l	FPOP,d0			; read first half
	rol.l	#8,d0			; <31:24> -> <7:0>
	andi.w	#$0E,d0			; mask
	move.w	d0,ccr			; update processor flags
	rts

