Skip to content

Commit 6a01058

Browse files
committed
use ascii
1 parent 58f30ff commit 6a01058

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

ext/json/json_encoder.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -487,14 +487,14 @@ zend_result php_json_escape_string(
487487
break;
488488
}
489489

490-
#if 0
491-
const __m128i result_34 = _mm_cmpeq_epi8(input, _mm_set1_epi8(34));
492-
const __m128i result_38 = _mm_cmpeq_epi8(input, _mm_set1_epi8(38));
493-
const __m128i result_39 = _mm_cmpeq_epi8(input, _mm_set1_epi8(39));
494-
const __m128i result_47 = _mm_cmpeq_epi8(input, _mm_set1_epi8(47));
495-
const __m128i result_60 = _mm_cmpeq_epi8(input, _mm_set1_epi8(60));
496-
const __m128i result_62 = _mm_cmpeq_epi8(input, _mm_set1_epi8(62));
497-
const __m128i result_92 = _mm_cmpeq_epi8(input, _mm_set1_epi8(92));
490+
#if 1
491+
const __m128i result_34 = _mm_cmpeq_epi8(input, _mm_set1_epi8('"'));
492+
const __m128i result_38 = _mm_cmpeq_epi8(input, _mm_set1_epi8('&'));
493+
const __m128i result_39 = _mm_cmpeq_epi8(input, _mm_set1_epi8('\''));
494+
const __m128i result_47 = _mm_cmpeq_epi8(input, _mm_set1_epi8('/'));
495+
const __m128i result_60 = _mm_cmpeq_epi8(input, _mm_set1_epi8('<'));
496+
const __m128i result_62 = _mm_cmpeq_epi8(input, _mm_set1_epi8('>'));
497+
const __m128i result_92 = _mm_cmpeq_epi8(input, _mm_set1_epi8('\\'));
498498

499499
const __m128i result_34_38 = _mm_or_si128(result_34, result_38);
500500
const __m128i result_39_47 = _mm_or_si128(result_39, result_47);
@@ -506,7 +506,7 @@ zend_result php_json_escape_string(
506506
const __m128i result_individual_bytes = _mm_or_si128(result_34_38_39_47, result_60_62_92);
507507
int mask = _mm_movemask_epi8(result_individual_bytes);
508508
#else
509-
const __m128i result_individual_bytes = _mm_cmpistrm(_mm_setr_epi8(34, 38, 39, 47, 60, 62, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0), input, _SIDD_SBYTE_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK);
509+
const __m128i result_individual_bytes = _mm_cmpistrm(_mm_setr_epi8('"', '&', '\'', '/', '<', '>', '\\', 0, 0, 0, 0, 0, 0, 0, 0, 0), input, _SIDD_SBYTE_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_BIT_MASK);
510510
int mask = _mm_cvtsi128_si32(result_individual_bytes);
511511
#endif
512512
if (mask != 0) {

0 commit comments

Comments
 (0)