*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> fpmode (1)              


FPMODE(1)							     FPMODE(1)

NAME    [Toc]    [Back]

     fpmode - run a command in specified floating point	and/or memory mode

SYNOPSIS    [Toc]    [Back]

     fpmode precise|performance|smm|nsmm|spec|nonspec command [	arguments ]

DESCRIPTION    [Toc]    [Back]

     fpmode executes command, forcing it to use	the specified floating point
     exception and memory access mode. This is only meaningful on processors
     that support multiple modes. On these processors, the default mode	is
     usually performance mode (also called imprecise exception mode) and nonsequential
	memory (nsmm) mode.  On	all other processors, the default is
     precise exception and sequential (smm) mode.

     The R8000 is the only processor which supports both a precise exception
     mode and a	performance mode.  All other processors	support	only precise
     exceptions, though	automatic flushing of denormalized results to zero may
     be	controlled through the setting of the FS bit in	the FP control and
     status register by	calling	set_fpc_csr().

     In	precise	exception mode,	all floating point exceptions/interrupts are
     reported on the instruction that caused the exception, so floating	point
     signal handlers can clean up the FP state and continue execution. In
     performance mode, floating	point interrupts are asynchronous and the
     reported program counter is meaningless. Precise mode is provided as a
     means of debugging	processes and/or backward compatibility	for programs
     that have knowledge of the	FP state. It causes significant	performance

     When a program is run in performance mode on an R8000, the	floating point
     processor automatically flushes all denormalized results to zero
     regardless	of the setting of the FS (flush	denormalized results to	zero)
     bit in the	FP control and status register.	This bit is turned on at
     exec() time.  Turning it off (by calling set_fpc_csr()) will cause
     performance degradation. When the same program is run in precise mode,
     the FS bit	is turned off at exec()	time (for backward compatibility with
     older processors).	Note that this means a given program may generate
     different results when run	in performance and precise modes.

     Non-sequential memory access mode allows the processor to do floating
     point and integer memory operations out of	order, thus possibly providing
     better performance.  This is only supported on R8000 processors.

     Turning on	speculative execution (spec) mode tells	the kernel to ignore
     all memory	access faults generated	by the program.	This mode is used by
     the compiler to provide better performance	in some	cases by allowing
     eager instruction scheduling. Note	that this may also cause significantly
     worse performance if used indiscriminately	and should be avoided when
     debugging since it	masks potential	problems.

									Page 1

FPMODE(1)							     FPMODE(1)

     The floating point	mode is	inherited across fork()	and exec() system
     calls. To modify both exception and memory	modes, use fpmode twice; e.g.,

	  fpmode precise fpmode	smm command

SEE ALSO    [Toc]    [Back]

     syssgi(2),	get_fpc_csr(3),	set_fpc_csr(3).

WARNINGS    [Toc]    [Back]

     In	the case of the	following command

	  fpmode precise command1; command2

     fpmode applies only to command1.  The command

	  fpmode precise (command1; command2)

     is	syntactically incorrect.

									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
get_ieee_rounding_mode IRIX Returns current floating-point rounding mode
set_ieee_rounding_mode IRIX state and restores the floating-point rounding mode before exiting a procedure
fpgetmask IRIX floating-point units
fabs FreeBSD floating-point absolute value functions
islessgreater FreeBSD compare two floating-point numbers
isunordered FreeBSD compare two floating-point numbers
drem Tru64 Compute the floating-point remainder
fmod Tru64 Compute the floating-point remainder
frexp Tru64 Manipulate floating-point numbers
islessequal FreeBSD compare two floating-point numbers
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service