ieeefp.h (143658) | ieeefp.h (144968) |
---|---|
1/*- 2 * Copyright (c) 2003 Peter Wemm. 3 * Copyright (c) 1990 Andrew Moore, Talke Studio 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 18 unchanged lines hidden (view full) --- 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 * 34 * from: @(#) ieeefp.h 1.0 (Berkeley) 9/23/93 | 1/*- 2 * Copyright (c) 2003 Peter Wemm. 3 * Copyright (c) 1990 Andrew Moore, Talke Studio 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 18 unchanged lines hidden (view full) --- 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 * 34 * from: @(#) ieeefp.h 1.0 (Berkeley) 9/23/93 |
35 * $FreeBSD: head/sys/amd64/include/ieeefp.h 143658 2005-03-15 15:53:39Z das $ | 35 * $FreeBSD: head/sys/amd64/include/ieeefp.h 144968 2005-04-12 23:12:00Z jhb $ |
36 */ 37 38/* 39 * IEEE floating point type and constant definitions. 40 */ 41 42#ifndef _MACHINE_IEEEFP_H_ 43#define _MACHINE_IEEEFP_H_ --- 77 unchanged lines hidden (view full) --- 121#define SSE_RND_OFF 13 /* rounding control offset */ 122#define SSE_FZ_OFF 15 /* flush to zero offset */ 123 124#if defined(__GNUCLIKE_ASM) && defined(__CC_SUPPORTS___INLINE__) \ 125 && !defined(__cplusplus) 126 127#define __fldenv(addr) __asm __volatile("fldenv %0" : : "m" (*(addr))) 128#define __fnstenv(addr) __asm __volatile("fnstenv %0" : "=m" (*(addr))) | 36 */ 37 38/* 39 * IEEE floating point type and constant definitions. 40 */ 41 42#ifndef _MACHINE_IEEEFP_H_ 43#define _MACHINE_IEEEFP_H_ --- 77 unchanged lines hidden (view full) --- 121#define SSE_RND_OFF 13 /* rounding control offset */ 122#define SSE_FZ_OFF 15 /* flush to zero offset */ 123 124#if defined(__GNUCLIKE_ASM) && defined(__CC_SUPPORTS___INLINE__) \ 125 && !defined(__cplusplus) 126 127#define __fldenv(addr) __asm __volatile("fldenv %0" : : "m" (*(addr))) 128#define __fnstenv(addr) __asm __volatile("fnstenv %0" : "=m" (*(addr))) |
129#define __fldcw(addr) __asm __volatile("fldcw %0" : "=m" (*(addr))) | 129#define __fldcw(addr) __asm __volatile("fldcw %0" : : "m" (*(addr))) |
130#define __fnstcw(addr) __asm __volatile("fnstcw %0" : "=m" (*(addr))) 131#define __fnstsw(addr) __asm __volatile("fnstsw %0" : "=m" (*(addr))) | 130#define __fnstcw(addr) __asm __volatile("fnstcw %0" : "=m" (*(addr))) 131#define __fnstsw(addr) __asm __volatile("fnstsw %0" : "=m" (*(addr))) |
132#define __ldmxcsr(addr) __asm __volatile("ldmxcsr %0" : "=m" (*(addr))) | 132#define __ldmxcsr(addr) __asm __volatile("ldmxcsr %0" : : "m" (*(addr))) |
133#define __stmxcsr(addr) __asm __volatile("stmxcsr %0" : "=m" (*(addr))) 134 135/* 136 * General notes about conflicting SSE vs FP status bits. 137 * This code assumes that software will not fiddle with the control 138 * bits of the SSE and x87 in such a way to get them out of sync and 139 * still expect this to work. Break this at your peril. 140 * Because I based this on the i386 port, the x87 state is used for --- 140 unchanged lines hidden --- | 133#define __stmxcsr(addr) __asm __volatile("stmxcsr %0" : "=m" (*(addr))) 134 135/* 136 * General notes about conflicting SSE vs FP status bits. 137 * This code assumes that software will not fiddle with the control 138 * bits of the SSE and x87 in such a way to get them out of sync and 139 * still expect this to work. Break this at your peril. 140 * Because I based this on the i386 port, the x87 state is used for --- 140 unchanged lines hidden --- |