1 : /*
2 : +----------------------------------------------------------------------+
3 : | Zend Engine |
4 : +----------------------------------------------------------------------+
5 : | Copyright (c) 1998-2009 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: zend_float.c 277413 2009-03-18 11:53:10Z dmitry $ */
20 :
21 : #include "zend.h"
22 : #include "zend_compile.h"
23 : #include "zend_float.h"
24 :
25 : ZEND_API void zend_init_fpu(TSRMLS_D) /* {{{ */
26 17619 : {
27 : #if XPFPA_HAVE_CW
28 : XPFPA_DECLARE
29 :
30 17619 : if (!EG(saved_fpu_cw)) {
31 17619 : EG(saved_fpu_cw) = emalloc(sizeof(XPFPA_CW_DATATYPE));
32 : }
33 17619 : XPFPA_STORE_CW(EG(saved_fpu_cw));
34 17619 : 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 17619 : }
42 : /* }}} */
43 :
44 : ZEND_API void zend_shutdown_fpu(TSRMLS_D) /* {{{ */
45 17651 : {
46 : #if XPFPA_HAVE_CW
47 17651 : if (EG(saved_fpu_cw)) {
48 17651 : XPFPA_RESTORE_CW(EG(saved_fpu_cw));
49 : }
50 : #endif
51 17651 : if (EG(saved_fpu_cw)) {
52 17651 : efree(EG(saved_fpu_cw));
53 17651 : EG(saved_fpu_cw) = NULL;
54 : }
55 17651 : }
56 : /* }}} */
57 :
58 : ZEND_API void zend_ensure_fpu_mode(TSRMLS_D) /* {{{ */
59 0 : {
60 : XPFPA_DECLARE
61 :
62 0 : XPFPA_SWITCH_DOUBLE();
63 0 : }
64 : /* }}} */
|