summaryrefslogtreecommitdiffstats
path: root/arch/sparc/math-emu/fcmpd.c
blob: 8adb30d882a893ebc6de01371f6b594e0b411623 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "soft-fp.h"
#include "double.h"

int FCMPD(void *rd, void *rs2, void *rs1)
{
	FP_DECL_D(A); FP_DECL_D(B);
	long ret;
	unsigned long *fsr = rd;
	
	__FP_UNPACK_D(A, rs1);
	__FP_UNPACK_D(B, rs2);
	FP_CMP_D(ret, B, A, 2);
	if (ret == -1)
		ret = 2;

	*fsr = (*fsr & ~0xc00) | (ret << 10); 
	return 0;
}