48 lines
1.6 KiB
ArmAsm
48 lines
1.6 KiB
ArmAsm
/*
|
|
* Copyright (c) 1985 Regents of the University of California.
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms are permitted provided
|
|
* that: (1) source distributions retain this entire copyright notice and
|
|
* comment, and (2) distributions including binaries display the following
|
|
* acknowledgement: ``This product includes software developed by the
|
|
* University of California, Berkeley and its contributors'' in the
|
|
* documentation or other materials provided with the distribution and in
|
|
* all advertising materials mentioning features or use of this software.
|
|
* Neither the name of the University nor the names of its contributors may
|
|
* be used to endorse or promote products derived from this software without
|
|
* specific prior written permission.
|
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
* @(#)infnan.s 5.5 (Berkeley) 10/9/90
|
|
*/
|
|
.data
|
|
.align 2
|
|
_sccsid:
|
|
.asciz "@(#)infnan.s 1.1 (Berkeley) 8/21/85; 5.5 (ucb.elefunt) 10/9/90"
|
|
|
|
/*
|
|
* 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
|