fpsetmask.c (125733) | fpsetmask.c (176530) |
---|---|
1/* $NetBSD: fpsetmask.c,v 1.3 2002/01/13 21:45:48 thorpej Exp $ */ 2 3/* 4 * Copyright (c) 1999 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Dan Winship. --- 24 unchanged lines hidden (view full) --- 33 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 * POSSIBILITY OF SUCH DAMAGE. 37 * 38 */ 39 40#include <sys/cdefs.h> | 1/* $NetBSD: fpsetmask.c,v 1.3 2002/01/13 21:45:48 thorpej Exp $ */ 2 3/* 4 * Copyright (c) 1999 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Dan Winship. --- 24 unchanged lines hidden (view full) --- 33 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 * POSSIBILITY OF SUCH DAMAGE. 37 * 38 */ 39 40#include <sys/cdefs.h> |
41__FBSDID("$FreeBSD: head/lib/libc/powerpc/gen/fpsetmask.c 125733 2004-02-12 09:11:06Z grehan $"); | 41__FBSDID("$FreeBSD: head/lib/libc/powerpc/gen/fpsetmask.c 176530 2008-02-24 19:22:53Z raj $"); |
42 43#include <sys/types.h> 44#include <ieeefp.h> 45 | 42 43#include <sys/types.h> 44#include <ieeefp.h> 45 |
46#ifndef _SOFT_FLOAT |
|
46fp_except_t 47fpsetmask(fp_except_t mask) 48{ 49 u_int64_t fpscr; 50 fp_rnd_t old; 51 52 __asm__("mffs %0" : "=f"(fpscr)); 53 old = (fp_rnd_t)((fpscr >> 3) & 0x1f); 54 fpscr = (fpscr & 0xffffff07) | (mask << 3); 55 __asm__ __volatile("mtfsf 0xff,%0" :: "f"(fpscr)); 56 return (old); 57} | 47fp_except_t 48fpsetmask(fp_except_t mask) 49{ 50 u_int64_t fpscr; 51 fp_rnd_t old; 52 53 __asm__("mffs %0" : "=f"(fpscr)); 54 old = (fp_rnd_t)((fpscr >> 3) & 0x1f); 55 fpscr = (fpscr & 0xffffff07) | (mask << 3); 56 __asm__ __volatile("mtfsf 0xff,%0" :: "f"(fpscr)); 57 return (old); 58} |
59#endif |
|