date and time created 87/11/30 18:46:50 by bostic
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Tue, 1 Dec 1987 10:46:50 +0000 (02:46 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Tue, 1 Dec 1987 10:46:50 +0000 (02:46 -0800)
SCCS-vsn: lib/libm/tahoe/infnan.s 5.1

usr/src/lib/libm/tahoe/infnan.s [new file with mode: 0644]

diff --git a/usr/src/lib/libm/tahoe/infnan.s b/usr/src/lib/libm/tahoe/infnan.s
new file mode 100644 (file)
index 0000000..0e52769
--- /dev/null
@@ -0,0 +1,40 @@
+/* 
+ * Copyright (c) 1985 Regents of the University of California.
+ * 
+ * Use and reproduction of this software are granted  in  accordance  with
+ * the terms and conditions specified in  the  Berkeley  Software  License
+ * Agreement (in particular, this entails acknowledgement of the programs'
+ * source, and inclusion of this notice) with the additional understanding
+ * that  all  recipients  should regard themselves as participants  in  an
+ * ongoing  research  project and hence should  feel  obligated  to report
+ * their  experiences (good or bad) with these elementary function  codes,
+ * using "sendbug 4bsd-bugs@BERKELEY", to the authors.
+ */
+       .data
+       .align  2
+_sccsid:
+.asciz "@(#)infnan.s   5.1     (ucb.elefunt)   %G%"
+
+/*
+ * double infnan(arg)
+ * int arg;
+ * where arg :=    EDOM        if result is  NaN
+ *          :=  ERANGE if result is +INF
+ *          := -ERANGE if result is -INF
+ *
+ * The Reserved Operand Fault is generated inside of this routine.
+ */    
+       .globl  _infnan
+       .set    EDOM,33
+       .set    ERANGE,34
+       .text
+       .align 2
+_infnan:
+       .word   0x0000                  # save nothing
+       cmpl    4(fp),$ERANGE
+       bneq    1f
+       movl    $ERANGE,_errno
+       brb     2f
+1:     movl    $EDOM,_errno
+2:     cmpf2   $0x80000000,$0x80000000 # generates the reserved operand fault
+       ret