Skip to content

Commit 4a9564f

Browse files
authored
Merge pull request #797 from byroot/simd-detection
Refactor SIMD ifdefs
2 parents 609393b + 220e019 commit 4a9564f

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

ext/json/ext/generator/generator.c

+8-8
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ typedef struct _search_state {
112112
const char *cursor;
113113
FBuffer *buffer;
114114

115-
#ifdef JSON_ENABLE_SIMD
115+
#ifdef HAVE_SIMD
116116
const char *chunk_base;
117117
const char *chunk_end;
118118
bool has_matches;
@@ -124,7 +124,7 @@ typedef struct _search_state {
124124
#else
125125
#error "Unknown SIMD Implementation."
126126
#endif /* HAVE_SIMD_NEON */
127-
#endif /* JSON_ENABLE_SIMD */
127+
#endif /* HAVE_SIMD */
128128
} search_state;
129129

130130
#if (defined(__GNUC__ ) || defined(__clang__))
@@ -261,7 +261,7 @@ static inline void escape_UTF8_char(search_state *search, unsigned char ch_len)
261261
search->cursor = (search->ptr += ch_len);
262262
}
263263

264-
#ifdef JSON_ENABLE_SIMD
264+
#ifdef HAVE_SIMD
265265

266266
static inline FORCE_INLINE char *copy_remaining_bytes(search_state *search, unsigned long vec_len, unsigned long len)
267267
{
@@ -533,7 +533,7 @@ static inline TARGET_SSE2 FORCE_INLINE unsigned char search_escape_basic_sse2(se
533533

534534
#endif /* HAVE_SIMD_SSE2 */
535535

536-
#endif /* JSON_ENABLE_SIMD */
536+
#endif /* HAVE_SIMD */
537537

538538
static const unsigned char script_safe_escape_table[256] = {
539539
// ASCII Control Characters
@@ -1298,11 +1298,11 @@ static void generate_json_string(FBuffer *buffer, struct generate_json_data *dat
12981298
search.cursor = search.ptr;
12991299
search.end = search.ptr + len;
13001300

1301-
#ifdef JSON_ENABLE_SIMD
1301+
#ifdef HAVE_SIMD
13021302
search.matches_mask = 0;
13031303
search.has_matches = false;
13041304
search.chunk_base = NULL;
1305-
#endif /* JSON_ENABLE_SIMD */
1305+
#endif /* HAVE_SIMD */
13061306

13071307
switch(rb_enc_str_coderange(obj)) {
13081308
case ENC_CODERANGE_7BIT:
@@ -2170,7 +2170,7 @@ void Init_generator(void)
21702170

21712171

21722172
switch(find_simd_implementation()) {
2173-
#ifdef JSON_ENABLE_SIMD
2173+
#ifdef HAVE_SIMD
21742174
#ifdef HAVE_SIMD_NEON
21752175
case SIMD_NEON:
21762176
search_escape_basic_impl = search_escape_basic_neon;
@@ -2181,7 +2181,7 @@ void Init_generator(void)
21812181
search_escape_basic_impl = search_escape_basic_sse2;
21822182
break;
21832183
#endif /* HAVE_SIMD_SSE2 */
2184-
#endif /* JSON_ENABLE_SIMD */
2184+
#endif /* HAVE_SIMD */
21852185
default:
21862186
search_escape_basic_impl = search_escape_basic;
21872187
break;

ext/json/ext/generator/simd.h

+2
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ static SIMD_Implementation find_simd_implementation(void) {
5656
return SIMD_NEON;
5757
}
5858

59+
#define HAVE_SIMD 1
5960
#define HAVE_SIMD_NEON 1
6061

6162
uint8x16x4_t load_uint8x16_4(const unsigned char *table) {
@@ -74,6 +75,7 @@ uint8x16x4_t load_uint8x16_4(const unsigned char *table) {
7475
#ifdef HAVE_X86INTRIN_H
7576
#include <x86intrin.h>
7677

78+
#define HAVE_SIMD 1
7779
#define HAVE_SIMD_SSE2 1
7880

7981
#ifdef HAVE_CPUID_H

0 commit comments

Comments
 (0)