michael@0: /* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__i386) || defined(__amd64__) michael@0: michael@0: /* michael@0: * x87 FPU Control Word: michael@0: * michael@0: * 0 -> IM Invalid Operation michael@0: * 1 -> DM Denormalized Operand michael@0: * 2 -> ZM Zero Divide michael@0: * 3 -> OM Overflow michael@0: * 4 -> UM Underflow michael@0: * 5 -> PM Precision michael@0: */ michael@0: #define FPU_EXCEPTION_MASK 0x3f michael@0: michael@0: /* michael@0: * x86 FPU Status Word: michael@0: * michael@0: * 0..5 -> Exception flags (see x86 FPU Control Word) michael@0: * 6 -> SF Stack Fault michael@0: * 7 -> ES Error Summary Status michael@0: */ michael@0: #define FPU_STATUS_FLAGS 0xff michael@0: michael@0: /* michael@0: * MXCSR Control and Status Register: michael@0: * michael@0: * 0..5 -> Exception flags (see x86 FPU Control Word) michael@0: * 6 -> DAZ Denormals Are Zero michael@0: * 7..12 -> Exception mask (see x86 FPU Control Word) michael@0: */ michael@0: #define SSE_STATUS_FLAGS FPU_EXCEPTION_MASK michael@0: #define SSE_EXCEPTION_MASK (FPU_EXCEPTION_MASK << 7) michael@0: michael@0: #endif