'\" t
.\" Manual page created with latex2man on Thu Aug 16 09:44:45 MDT 2007
.\" NOTE: This file is generated, DO NOT EDIT.
.de Vb
.ft CW
.nf
..
.de Ve
.ft R

.fi
..
.TH "UNW\\_IS\\_FPREG" "3" "16 August 2007" "Programming Library " "Programming Library "
.SH NAME
unw_is_fpreg
\-\- check if a register is a floating\-point register 
.PP
.SH SYNOPSIS

.PP
#include <libunwind.h>
.br
.PP
int
unw_is_fpreg(unw_regnum_t
reg);
.br
.PP
.SH DESCRIPTION

.PP
The unw_is_fpreg()
routine checks whether register number 
reg
is a floating\-point register. 
.PP
This routine is normally implemented as a macro and applications 
should not attempt to take its address. 
.PP
.SH RETURN VALUE

.PP
The unw_is_fpreg()
routine returns a non\-zero value if 
reg
is a floating\-point register. Otherwise, it returns a value 
of 0. 
.PP
.SH THREAD AND SIGNAL SAFETY

.PP
unw_is_fpreg()
is thread\-safe as well as safe to use 
from a signal handler. 
.PP
.SH SEE ALSO

.PP
libunwind(3),
unw_get_reg(3),
unw_set_reg(3),
unw_get_fpreg(3),
unw_set_fpreg(3)
.PP
.SH AUTHOR

.PP
David Mosberger\-Tang
.br
Email: \fBdmosberger@gmail.com\fP
.br
WWW: \fBhttp://www.nongnu.org/libunwind/\fP\&.
.\" NOTE: This file is generated, DO NOT EDIT.
