diff options
-rw-r--r-- | Zend/zend_multiply.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h index be41e588c3..30433d77d8 100644 --- a/Zend/zend_multiply.h +++ b/Zend/zend_multiply.h @@ -19,11 +19,13 @@ #if defined(__i386__) && defined(__GNUC__) #define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \ + long __tmpvar; \ __asm__ ("imul %3,%0\n" \ "adc $0,%1" \ - : "=r"(lval),"=r"(usedval) \ + : "=r"(__tmpvar),"=r"(usedval) \ : "0"(a), "r"(b), "1"(0)); \ if (usedval) (dval) = (double) (a) * (double) (b); \ + else (lval) = __tmpvar; \ } while (0) #else |