diff options
author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 19:39:21 -0400 |
---|---|---|
committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 19:39:21 -0400 |
commit | 6821b67124604da690c5e9276d5370d679c63ac8 (patch) | |
tree | befb4ca2520eb577950cef6cb76d10b914cbf67a /Zend/zend_float.c | |
parent | cd0b49c72aee33b3e44a9c589fcd93b9e1c7a64f (diff) | |
download | php-6821b67124604da690c5e9276d5370d679c63ac8.tar.gz |
Imported Upstream version 5.3.0RC1upstream/5.3.0_RC1upstream/5.3.0RC1
Diffstat (limited to 'Zend/zend_float.c')
-rw-r--r-- | Zend/zend_float.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Zend/zend_float.c b/Zend/zend_float.c new file mode 100644 index 000000000..ab59c9159 --- /dev/null +++ b/Zend/zend_float.c @@ -0,0 +1,64 @@ +/* + +----------------------------------------------------------------------+ + | Zend Engine | + +----------------------------------------------------------------------+ + | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.00 of the Zend license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.zend.com/license/2_00.txt. | + | If you did not receive a copy of the Zend license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@zend.com so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Christian Seiler <chris_se@gmx.net> | + +----------------------------------------------------------------------+ +*/ + +/* $Id: zend_float.c,v 1.1.2.2 2009/03/18 11:53:10 dmitry Exp $ */ + +#include "zend.h" +#include "zend_compile.h" +#include "zend_float.h" + +ZEND_API void zend_init_fpu(TSRMLS_D) /* {{{ */ +{ +#if XPFPA_HAVE_CW + XPFPA_DECLARE + + if (!EG(saved_fpu_cw)) { + EG(saved_fpu_cw) = emalloc(sizeof(XPFPA_CW_DATATYPE)); + } + XPFPA_STORE_CW(EG(saved_fpu_cw)); + XPFPA_SWITCH_DOUBLE(); +#else + if (EG(saved_fpu_cw)) { + efree(EG(saved_fpu_cw)); + } + EG(saved_fpu_cw) = NULL; +#endif +} +/* }}} */ + +ZEND_API void zend_shutdown_fpu(TSRMLS_D) /* {{{ */ +{ +#if XPFPA_HAVE_CW + if (EG(saved_fpu_cw)) { + XPFPA_RESTORE_CW(EG(saved_fpu_cw)); + } +#endif + if (EG(saved_fpu_cw)) { + efree(EG(saved_fpu_cw)); + EG(saved_fpu_cw) = NULL; + } +} +/* }}} */ + +ZEND_API void zend_ensure_fpu_mode(TSRMLS_D) /* {{{ */ +{ + XPFPA_DECLARE + + XPFPA_SWITCH_DOUBLE(); +} +/* }}} */ |