date and time created 85/09/06 17:50:18 by zliu
[unix-history] / usr / src / lib / libm / vax / infnan.s
/*
* 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.
*
* @(#)infnan.s 1.1 (ELEFUNT) %G%
*
* 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 1
_infnan:
.word 0x0
cmpl 4(ap),$ERANGE
bneq 1f
movl $ERANGE,_errno
brb 2f
1: movl $EDOM,_errno
2: emodd $0,$0,$0x8000,r0,r0 # generates the reserved operand fault
ret