File tree Expand file tree Collapse file tree 2 files changed +31
-1
lines changed Expand file tree Collapse file tree 2 files changed +31
-1
lines changed Original file line number Diff line number Diff line change 1- const char * s_simd_source_declarations = R"w2c_template( #define SIMD_FORCE_READ(var) (void)*(volatile v128*)&var;
1+ const char * s_simd_source_declarations = R"w2c_template( #if defined(__GNUC__) && defined(__x86_64__)
2+ )w2c_template"
3+ R"w2c_template( #define SIMD_FORCE_READ(var) __asm__("" ::"x"(var));
4+ )w2c_template"
5+ R"w2c_template( #elif defined(__GNUC__) && defined(__aarch64__)
6+ )w2c_template"
7+ R"w2c_template( #define SIMD_FORCE_READ(var) __asm__("" ::"w"(var));
8+ )w2c_template"
9+ R"w2c_template( #elif WASM_RT_MEMCHECK_GUARD_PAGES
10+ )w2c_template"
11+ R"w2c_template( // best-effort using volatile
12+ )w2c_template"
13+ R"w2c_template( #define SIMD_FORCE_READ(var) (void)*(volatile v128*)&var;
14+ )w2c_template"
15+ R"w2c_template( #else
16+ )w2c_template"
17+ R"w2c_template( #define SIMD_FORCE_READ(var)
18+ )w2c_template"
19+ R"w2c_template( #endif
20+ )w2c_template"
21+ R"w2c_template( // TODO: equivalent constraint for ARM and other architectures
222)w2c_template"
323R"w2c_template(
424#define DEFINE_SIMD_LOAD_FUNC(name, func, t) \
Original file line number Diff line number Diff line change 1+ #if defined(__GNUC__ ) && defined(__x86_64__ )
2+ #define SIMD_FORCE_READ (var ) __asm__("" ::"x"(var));
3+ #elif defined(__GNUC__ ) && defined(__aarch64__ )
4+ #define SIMD_FORCE_READ (var ) __asm__("" ::"w"(var));
5+ #elif WASM_RT_MEMCHECK_GUARD_PAGES
6+ // best-effort using volatile
17#define SIMD_FORCE_READ (var ) (void)*(volatile v128*)&var;
8+ #else
9+ #define SIMD_FORCE_READ (var )
10+ #endif
11+ // TODO: equivalent constraint for ARM and other architectures
212
313#define DEFINE_SIMD_LOAD_FUNC (name , func , t ) \
414 static inline v128 name##_unchecked(wasm_rt_memory_t* mem, u64 addr) { \
You can’t perform that action at this time.
0 commit comments