@@ -539,7 +539,7 @@ typedef enum php_json_simd_result {
539539 PHP_JSON_SLOW ,
540540 PHP_JSON_NON_ASCII ,
541541} php_json_simd_result ;
542-
542+ php_json_compute_escape_intersection_t foo = php_json_sse42_compute_escape_intersection_real ;
543543#ifdef JSON_USE_SIMD
544544static zend_always_inline php_json_simd_result php_json_process_simd_block (
545545 smart_str * buf ,
@@ -550,6 +550,7 @@ static zend_always_inline php_json_simd_result php_json_process_simd_block(
550550 int options
551551)
552552{
553+ const php_json_compute_escape_intersection_t dontchangeme = foo ;
553554 while (* len >= sizeof (__m128i )) {
554555 const __m128i input = _mm_loadu_si128 ((const __m128i * ) (* s + * pos ));
555556 /* signed compare, so checks for unsigned bytes >= 0x80 as well */
@@ -566,13 +567,14 @@ static zend_always_inline php_json_simd_result php_json_process_simd_block(
566567 max_shift = zend_ulong_ntz (input_range_mask );
567568 }
568569
569- #ifdef ZEND_INTRIN_SSE4_2_NATIVE
570- int mask = php_json_sse42_compute_escape_intersection_real (sse_escape_mask , input );
571- #elif defined(ZEND_INTRIN_SSE4_2_FUNC_PROTO )
572- int mask = php_json_sse42_compute_escape_intersection (sse_escape_mask , input );
573- #else
574- int mask = php_json_sse2_compute_escape_intersection (_mm_setzero_si128 (), input );
575- #endif
570+ // #ifdef ZEND_INTRIN_SSE4_2_NATIVE
571+ // int mask = php_json_sse42_compute_escape_intersection_real(sse_escape_mask, input);
572+ // #elif defined(ZEND_INTRIN_SSE4_2_FUNC_PROTO)
573+ // int mask = php_json_sse42_compute_escape_intersection(sse_escape_mask, input);
574+ // #else
575+ // int mask = php_json_sse2_compute_escape_intersection(_mm_setzero_si128(), input);
576+ // #endif
577+ int mask = dontchangeme (sse_escape_mask , input );
576578 if (mask != 0 ) {
577579 if (UNEXPECTED (max_shift < sizeof (__m128i ))) {
578580 int shift = zend_ulong_ntz (mask ); /* first offending character */
0 commit comments