+/*
+ * 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