]> granicus.if.org Git - php/commitdiff
Use add/sub instead of inc/dec
authorDmitry Stogov <dmitry@zend.com>
Mon, 7 May 2018 21:00:59 +0000 (00:00 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 7 May 2018 21:00:59 +0000 (00:00 +0300)
Zend/zend_operators.h

index e7e7c59452c0c492fc65b0fb85b61e0795818e8c..17c24ab306d1c5e16b18d9eaf40c349bdb72bce8 100644 (file)
@@ -469,7 +469,7 @@ static zend_always_inline void fast_long_increment_function(zval *op1)
 {
 #if defined(HAVE_ASM_GOTO) && defined(__i386__)
        __asm__ goto(
-               "incl (%0)\n\t"
+               "addl $1,(%0)\n\t"
                "jo  %l1\n"
                :
                : "r"(&op1->value)
@@ -480,7 +480,7 @@ overflow: ZEND_ATTRIBUTE_COLD_LABEL
        ZVAL_DOUBLE(op1, (double)ZEND_LONG_MAX + 1.0);
 #elif defined(HAVE_ASM_GOTO) && defined(__x86_64__)
        __asm__ goto(
-               "incq (%0)\n\t"
+               "addq $1,(%0)\n\t"
                "jo  %l1\n"
                :
                : "r"(&op1->value)
@@ -519,7 +519,7 @@ static zend_always_inline void fast_long_decrement_function(zval *op1)
 {
 #if defined(HAVE_ASM_GOTO) && defined(__i386__)
        __asm__ goto(
-               "decl (%0)\n\t"
+               "subl $1,(%0)\n\t"
                "jo  %l1\n"
                :
                : "r"(&op1->value)
@@ -530,7 +530,7 @@ overflow: ZEND_ATTRIBUTE_COLD_LABEL
        ZVAL_DOUBLE(op1, (double)ZEND_LONG_MIN - 1.0);
 #elif defined(HAVE_ASM_GOTO) && defined(__x86_64__)
        __asm__ goto(
-               "decq (%0)\n\t"
+               "subq $1,(%0)\n\t"
                "jo  %l1\n"
                :
                : "r"(&op1->value)