FPI(3-SysV) RISC/os Reference Manual FPI(3-SysV)
NAME
fpi - floating-point interrupt analysis
SYNOPSIS
#include <fpi.h>
void fpi()
void print_fpicounts()
int fpi_counts[];
char *fpi_list[];
DESCRIPTION
MIPS floating-point units generate floating-point interrupts
for some classes of operations that occur with low fre-
quency. In these cases the system software then emulates
the operation in software. As a program takes floating-
point interrupts its performance degrades since the opera-
tions are emulated in software. The routines and counters
described here are used to analyze the causes of floating-
point interrupts.
The routine fpi makes a sysmips(2) [MIPS_FPSIGINT] system
call to causes floating-point interrupts to generate a
SIGFPE. It also sets up a special signal handler for
SIGFPE's. On a floating-point interrupt that signal handler
determines the precise cause of the interrupt and increments
the appropriate counter in fpi_counts[].
The routine print_fpicounts prints out the value of the
counters and their description on stderr as in the following
example:
source signaling NaN = 0
source quiet NaN = 10
source denormalized value = 23
move of zero = 83
negate of zero = 84
implemented only in software = 5
invalid operation = 96
divide by zero = 3837
destination overflow = 398
destination underflow = 489
The constants in the file <fpi.h> along the counters,
fpi_counts[], and the descriptive strings, fpi_list[], can
also be used to format messages.
LIMITATIONS
Fpi can't be used with programs that normally generate
SIGFPE's.
Printed 1/15/91 Page 1
FPI(3-SysV) RISC/os Reference Manual FPI(3-SysV)
ALSO SEE
R2010 Floating Point Coprocessor Architecture
R2360 Floating Point Board Product Description
sysmips(2) [MIPS_FPSIGINTR].
Page 2 Printed 1/15/91