diff --git a/portability_8h_source.html b/portability_8h_source.html
index 4c3ae090c..095d87ede 100644
--- a/portability_8h_source.html
+++ b/portability_8h_source.html
@@ -141,141 +141,138 @@ $(document).ready(function(){initNavTree('portability_8h_source.html',''); initR
59 #if SIMDJSON_IS_32BITS
60 #ifndef SIMDJSON_NO_PORTABILITY_WARNING
- 61 #pragma message("The simdjson library is designed \
- 62 for 64-bit processors and it seems that you are not \
- 63 compiling for a known 64-bit platform. All fast kernels \
- 64 will be disabled and performance may be poor. Please \
- 65 use a 64-bit target such as x64, 64-bit ARM or 64-bit PPC.")
-
-
+
+
+
+
+
+ 66 #define SIMDJSON_CAT_IMPLEMENTATION_(a,...) a ## __VA_ARGS__
+ 67 #define SIMDJSON_CAT(a,...) SIMDJSON_CAT_IMPLEMENTATION_(a, __VA_ARGS__)
- 69 #define SIMDJSON_CAT_IMPLEMENTATION_(a,...) a ## __VA_ARGS__
- 70 #define SIMDJSON_CAT(a,...) SIMDJSON_CAT_IMPLEMENTATION_(a, __VA_ARGS__)
+ 69 #define SIMDJSON_STRINGIFY_IMPLEMENTATION_(a,...) #a SIMDJSON_STRINGIFY(__VA_ARGS__)
+ 70 #define SIMDJSON_STRINGIFY(a,...) SIMDJSON_CAT_IMPLEMENTATION_(a, __VA_ARGS__)
- 72 #define SIMDJSON_STRINGIFY_IMPLEMENTATION_(a,...) #a SIMDJSON_STRINGIFY(__VA_ARGS__)
- 73 #define SIMDJSON_STRINGIFY(a,...) SIMDJSON_CAT_IMPLEMENTATION_(a, __VA_ARGS__)
-
-
- 76 #undef SIMDJSON_STRINGIFY_IMPLEMENTATION_
- 77 #undef SIMDJSON_STRINGIFY
- 78 #define SIMDJSON_STRINGIFY_IMPLEMENTATION_(a) #a
- 79 #define SIMDJSON_STRINGIFY(a) SIMDJSON_STRINGIFY_IMPLEMENTATION_(a)
-
-
+
+ 73 #undef SIMDJSON_STRINGIFY_IMPLEMENTATION_
+ 74 #undef SIMDJSON_STRINGIFY
+ 75 #define SIMDJSON_STRINGIFY_IMPLEMENTATION_(a) #a
+ 76 #define SIMDJSON_STRINGIFY(a) SIMDJSON_STRINGIFY_IMPLEMENTATION_(a)
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
- 96 #if SIMDJSON_IS_X86_64
-
-
-
-
-
- 102 #define SIMDJSON_TARGET_REGION(T) \
- 103 _Pragma(SIMDJSON_STRINGIFY( \
- 104 clang attribute push(__attribute__((target(T))), apply_to = function)))
- 105 #define SIMDJSON_UNTARGET_REGION _Pragma("clang attribute pop")
- 106 #elif defined(__GNUC__)
-
- 108 #define SIMDJSON_TARGET_REGION(T) \
- 109 _Pragma("GCC push_options") _Pragma(SIMDJSON_STRINGIFY(GCC target(T)))
- 110 #define SIMDJSON_UNTARGET_REGION _Pragma("GCC pop_options")
-
-
-
-
-
- 116 #ifndef SIMDJSON_TARGET_REGION
- 117 #define SIMDJSON_TARGET_REGION(T)
- 118 #define SIMDJSON_UNTARGET_REGION
-
-
-
- 122 #if defined(_REENTRANT) || defined(_MT)
- 123 #ifndef SIMDJSON_THREADS_ENABLED
- 124 #define SIMDJSON_THREADS_ENABLED
-
-
-
-
-
-
-
-
-
-
-
-
- 137 #undef SIMDJSON_THREADS_ENABLED
-
-
-
-
- 142 #if defined(__clang__)
- 143 #define SIMDJSON_NO_SANITIZE_UNDEFINED __attribute__((no_sanitize("undefined")))
- 144 #elif defined(__GNUC__)
- 145 #define SIMDJSON_NO_SANITIZE_UNDEFINED __attribute__((no_sanitize_undefined))
-
- 147 #define SIMDJSON_NO_SANITIZE_UNDEFINED
-
-
-
- 151 #if defined(__clang__) || defined(__GNUC__)
- 152 #if defined(__has_feature)
- 153 # if __has_feature(memory_sanitizer)
- 154 #define SIMDJSON_NO_SANITIZE_MEMORY __attribute__((no_sanitize("memory")))
-
-
-
-
- 159 #ifndef SIMDJSON_NO_SANITIZE_MEMORY
- 160 #define SIMDJSON_NO_SANITIZE_MEMORY
-
-
- 163 #if SIMDJSON_VISUAL_STUDIO
-
-
-
- 167 #define simdjson_strcasecmp _stricmp
- 168 #define simdjson_strncasecmp _strnicmp
-
-
-
-
- 173 #define simdjson_strcasecmp strcasecmp
- 174 #define simdjson_strncasecmp strncasecmp
-
-
- 177 #if defined(NDEBUG) || defined(__OPTIMIZE__) || (defined(_MSC_VER) && !defined(_DEBUG))
-
-
- 180 #if SIMDJSON_VISUAL_STUDIO
- 181 #define SIMDJSON_UNREACHABLE() __assume(0)
- 182 #define SIMDJSON_ASSUME(COND) __assume(COND)
-
- 184 #define SIMDJSON_UNREACHABLE() __builtin_unreachable();
- 185 #define SIMDJSON_ASSUME(COND) do { if (!(COND)) __builtin_unreachable(); } while (0)
-
-
-
-
- 190 #define SIMDJSON_UNREACHABLE() assert(0);
- 191 #define SIMDJSON_ASSUME(COND) assert(COND)
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 93 #if SIMDJSON_IS_X86_64
+
+
+
+
+
+ 99 #define SIMDJSON_TARGET_REGION(T) \
+ 100 _Pragma(SIMDJSON_STRINGIFY( \
+ 101 clang attribute push(__attribute__((target(T))), apply_to = function)))
+ 102 #define SIMDJSON_UNTARGET_REGION _Pragma("clang attribute pop")
+ 103 #elif defined(__GNUC__)
+
+ 105 #define SIMDJSON_TARGET_REGION(T) \
+ 106 _Pragma("GCC push_options") _Pragma(SIMDJSON_STRINGIFY(GCC target(T)))
+ 107 #define SIMDJSON_UNTARGET_REGION _Pragma("GCC pop_options")
+
+
+
+
+
+ 113 #ifndef SIMDJSON_TARGET_REGION
+ 114 #define SIMDJSON_TARGET_REGION(T)
+ 115 #define SIMDJSON_UNTARGET_REGION
+
+
+
+ 119 #if defined(_REENTRANT) || defined(_MT)
+ 120 #ifndef SIMDJSON_THREADS_ENABLED
+ 121 #define SIMDJSON_THREADS_ENABLED
+
+
+
+
+
+
+
+
+
+
+
+
+ 134 #undef SIMDJSON_THREADS_ENABLED
+
+
+
+
+ 139 #if defined(__clang__)
+ 140 #define SIMDJSON_NO_SANITIZE_UNDEFINED __attribute__((no_sanitize("undefined")))
+ 141 #elif defined(__GNUC__)
+ 142 #define SIMDJSON_NO_SANITIZE_UNDEFINED __attribute__((no_sanitize_undefined))
+
+ 144 #define SIMDJSON_NO_SANITIZE_UNDEFINED
+
+
+
+ 148 #if defined(__clang__) || defined(__GNUC__)
+ 149 #if defined(__has_feature)
+ 150 # if __has_feature(memory_sanitizer)
+ 151 #define SIMDJSON_NO_SANITIZE_MEMORY __attribute__((no_sanitize("memory")))
+
+
+
+
+ 156 #ifndef SIMDJSON_NO_SANITIZE_MEMORY
+ 157 #define SIMDJSON_NO_SANITIZE_MEMORY
+
+
+ 160 #if SIMDJSON_VISUAL_STUDIO
+
+
+
+ 164 #define simdjson_strcasecmp _stricmp
+ 165 #define simdjson_strncasecmp _strnicmp
+
+
+
+
+ 170 #define simdjson_strcasecmp strcasecmp
+ 171 #define simdjson_strncasecmp strncasecmp
+
+
+ 174 #if defined(NDEBUG) || defined(__OPTIMIZE__) || (defined(_MSC_VER) && !defined(_DEBUG))
+
+
+ 177 #if SIMDJSON_VISUAL_STUDIO
+ 178 #define SIMDJSON_UNREACHABLE() __assume(0)
+ 179 #define SIMDJSON_ASSUME(COND) __assume(COND)
+
+ 181 #define SIMDJSON_UNREACHABLE() __builtin_unreachable();
+ 182 #define SIMDJSON_ASSUME(COND) do { if (!(COND)) __builtin_unreachable(); } while (0)
+
+
+
+
+ 187 #define SIMDJSON_UNREACHABLE() assert(0);
+ 188 #define SIMDJSON_ASSUME(COND) assert(COND)
+
+
+
+