diff --git a/src/prebuilt/wasm2c_simd_source_declarations.cc b/src/prebuilt/wasm2c_simd_source_declarations.cc index a43a00069..89d8b99d9 100644 --- a/src/prebuilt/wasm2c_simd_source_declarations.cc +++ b/src/prebuilt/wasm2c_simd_source_declarations.cc @@ -1,18 +1,4 @@ -const char* s_simd_source_declarations = R"w2c_template(#if defined(__GNUC__) && defined(__x86_64__) -)w2c_template" -R"w2c_template(#define SIMD_FORCE_READ(var) __asm__("" ::"x"(var)); -)w2c_template" -R"w2c_template(#elif defined(__GNUC__) && defined(__aarch64__) -)w2c_template" -R"w2c_template(#define SIMD_FORCE_READ(var) __asm__("" ::"w"(var)); -)w2c_template" -R"w2c_template(#else -)w2c_template" -R"w2c_template(#define SIMD_FORCE_READ(var) -)w2c_template" -R"w2c_template(#endif -)w2c_template" -R"w2c_template(// TODO: equivalent constraint for ARM and other architectures +const char* s_simd_source_declarations = R"w2c_template(#define SIMD_FORCE_READ(var) (void)*(volatile v128*)&var; )w2c_template" R"w2c_template( #define DEFINE_SIMD_LOAD_FUNC(name, func, t) \ diff --git a/src/template/wasm2c_simd.declarations.c b/src/template/wasm2c_simd.declarations.c index 39eb4578e..67173284d 100644 --- a/src/template/wasm2c_simd.declarations.c +++ b/src/template/wasm2c_simd.declarations.c @@ -1,11 +1,4 @@ -#if defined(__GNUC__) && defined(__x86_64__) -#define SIMD_FORCE_READ(var) __asm__("" ::"x"(var)); -#elif defined(__GNUC__) && defined(__aarch64__) -#define SIMD_FORCE_READ(var) __asm__("" ::"w"(var)); -#else -#define SIMD_FORCE_READ(var) -#endif -// TODO: equivalent constraint for ARM and other architectures +#define SIMD_FORCE_READ(var) (void)*(volatile v128*)&var; #define DEFINE_SIMD_LOAD_FUNC(name, func, t) \ static inline v128 name##_unchecked(wasm_rt_memory_t* mem, u64 addr) { \