patch-2.1.79 linux/arch/sparc64/math-emu/fcmpq.c
Next file: linux/arch/sparc64/math-emu/fdivd.c
Previous file: linux/arch/sparc64/math-emu/fcmpeq.c
Back to the patch index
Back to the overall index
- Lines: 29
- Date:
Mon Jan 12 15:15:44 1998
- Orig file:
v2.1.78/linux/arch/sparc64/math-emu/fcmpq.c
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.1.78/linux/arch/sparc64/math-emu/fcmpq.c linux/arch/sparc64/math-emu/fcmpq.c
@@ -0,0 +1,28 @@
+#include "soft-fp.h"
+#include "quad.h"
+
+int FCMPQ(void *rd, void *rs2, void *rs1)
+{
+ FP_DECL_Q(A); FP_DECL_Q(B);
+ long ret;
+ int fccno = ((long)rd) & 3;
+ unsigned long fsr;
+
+ rd = (void *)(((long)rd)&~3);
+ __FP_UNPACK_Q(A, rs1);
+ __FP_UNPACK_Q(B, rs2);
+ FP_CMP_Q(ret, A, B, 3);
+ switch (ret) {
+ case 1: ret = 2; break;
+ case -1: ret = 1; break;
+ }
+ fsr = *(unsigned long *)rd;
+ switch (fccno) {
+ case 0: fsr &= ~0xc00; fsr |= (ret << 10); break;
+ case 1: fsr &= ~0x300000000UL; fsr |= (ret << 32); break;
+ case 2: fsr &= ~0xc00000000UL; fsr |= (ret << 34); break;
+ case 3: fsr &= ~0x3000000000UL; fsr |= (ret << 36); break;
+ }
+ *(unsigned long *)rd = fsr;
+ return 1;
+}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov