1 /* 2 +----------------------------------------------------------------------+ 3 | Zend Engine | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 2.00 of the Zend license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.zend.com/license/2_00.txt. | 11 | If you did not receive a copy of the Zend license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@zend.com so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Authors: Christian Seiler <chris_se@gmx.net> | 16 +----------------------------------------------------------------------+ 17 */ 18 19 /* $Id$ */ 20 21 #include "zend.h" 22 #include "zend_compile.h" 23 #include "zend_float.h" 24 zend_init_fpu(TSRMLS_D)25ZEND_API void zend_init_fpu(TSRMLS_D) /* {{{ */ 26 { 27 #if XPFPA_HAVE_CW 28 XPFPA_DECLARE 29 30 if (!EG(saved_fpu_cw)) { 31 EG(saved_fpu_cw) = emalloc(sizeof(XPFPA_CW_DATATYPE)); 32 } 33 XPFPA_STORE_CW(EG(saved_fpu_cw)); 34 XPFPA_SWITCH_DOUBLE(); 35 #else 36 if (EG(saved_fpu_cw)) { 37 efree(EG(saved_fpu_cw)); 38 } 39 EG(saved_fpu_cw) = NULL; 40 #endif 41 } 42 /* }}} */ 43 zend_shutdown_fpu(TSRMLS_D)44ZEND_API void zend_shutdown_fpu(TSRMLS_D) /* {{{ */ 45 { 46 #if XPFPA_HAVE_CW 47 if (EG(saved_fpu_cw)) { 48 XPFPA_RESTORE_CW(EG(saved_fpu_cw)); 49 } 50 #endif 51 if (EG(saved_fpu_cw)) { 52 efree(EG(saved_fpu_cw)); 53 EG(saved_fpu_cw) = NULL; 54 } 55 } 56 /* }}} */ 57 zend_ensure_fpu_mode(TSRMLS_D)58ZEND_API void zend_ensure_fpu_mode(TSRMLS_D) /* {{{ */ 59 { 60 XPFPA_DECLARE 61 62 XPFPA_SWITCH_DOUBLE(); 63 } 64 /* }}} */ 65