]> granicus.if.org Git - php/commitdiff
Fixed IS_UNDEF handling
authorDmitry Stogov <dmitry@zend.com>
Fri, 3 Jul 2020 07:52:03 +0000 (10:52 +0300)
committerDmitry Stogov <dmitry@zend.com>
Fri, 3 Jul 2020 07:52:03 +0000 (10:52 +0300)
ext/opcache/jit/zend_jit_x86.dasc

index ef09a54c28d81e23399738131cc7257aafd0333c..e6be17a3c9cabb03edba4b6d4a128d49cfff73b9 100644 (file)
@@ -1612,16 +1612,12 @@ static zend_bool is_power_of_two(uint32_t x)
 
 static zend_bool has_concrete_type(uint32_t value_type)
 {
-       if (value_type & MAY_BE_UNDEF) {
-               value_type |= MAY_BE_NULL;
-       }
-       value_type &= MAY_BE_ANY;
-       return is_power_of_two (value_type);
+       return is_power_of_two (value_type & (MAY_BE_ANY|MAY_BE_UNDEF));
 }
 
 static uint32_t concrete_type(uint32_t value_type)
 {
-       return floor_log2(value_type & MAY_BE_ANY);
+       return floor_log2(value_type & (MAY_BE_ANY|MAY_BE_UNDEF));
 }
 
 static inline zend_bool is_signed(double d)