Don't use long double
Slots in the x87 stack get marked as occupied when you move values into the corresponding mmx registers. If you try to push a value onto the x87 stack, and the slot isnt empty, it will fail, and give you a nan. Generally, g++-x64 doesnt use the x87 instructions, but if you do long double arithmetic, it does. f_pow was using long doubles - but there was an alternate, much faster, asm sequence which didnt use long double, and which just needed to test the right define - so switch to that. Also grep for long double to make sure we're not using it elsewhere.
Esse commit está contido em:
@@ -15,7 +15,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
#if defined(__i386__) && defined(__GNUC__)
|
||||
#if (defined(__x86_64__) || defined(__i386__)) && defined(__GNUC__)
|
||||
|
||||
#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \
|
||||
long __tmpvar; \
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário