diff --git a/Zend/zend_float.c b/Zend/zend_float.c index 90af0c4a5f900..2d7e6529a53d8 100644 --- a/Zend/zend_float.c +++ b/Zend/zend_float.c @@ -22,7 +22,8 @@ ZEND_API void zend_init_fpu(void) /* {{{ */ { -#if XPFPA_HAVE_CW +/* under __SSE__ the FPCW is irrelevant; no need to change it */ +#if XPFPA_HAVE_CW && !defined(__SSE__) XPFPA_DECLARE if (!EG(saved_fpu_cw_ptr)) { @@ -38,7 +39,7 @@ ZEND_API void zend_init_fpu(void) /* {{{ */ ZEND_API void zend_shutdown_fpu(void) /* {{{ */ { -#if XPFPA_HAVE_CW +#if XPFPA_HAVE_CW && !defined(__SSE__) if (EG(saved_fpu_cw_ptr)) { XPFPA_RESTORE_CW(EG(saved_fpu_cw_ptr)); } @@ -49,8 +50,10 @@ ZEND_API void zend_shutdown_fpu(void) /* {{{ */ ZEND_API void zend_ensure_fpu_mode(void) /* {{{ */ { +#ifndef __SSE__ XPFPA_DECLARE XPFPA_SWITCH_DOUBLE(); +#endif } /* }}} */