mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 15:05:19 +00:00
Update std atomic check and simd compatibility check for arc compiler (#3716)
This commit is contained in:
parent
b845e2ede4
commit
63df2cf02d
|
@ -3121,7 +3121,8 @@ aot_create_comp_context(const AOTCompData *comp_data, aot_comp_option_t option)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (option->enable_simd && strcmp(comp_ctx->target_arch, "x86_64") != 0
|
if (option->enable_simd && strcmp(comp_ctx->target_arch, "x86_64") != 0
|
||||||
&& strncmp(comp_ctx->target_arch, "aarch64", 7) != 0) {
|
&& strncmp(comp_ctx->target_arch, "aarch64", 7) != 0
|
||||||
|
&& strcmp(comp_ctx->target_arch, "arc") != 0) {
|
||||||
/* Disable simd if it isn't supported by target arch */
|
/* Disable simd if it isn't supported by target arch */
|
||||||
option->enable_simd = false;
|
option->enable_simd = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,6 +176,9 @@ aot_check_simd_compatibility(const char *arch_c_str, const char *cpu_c_str)
|
||||||
else if (targetArch == llvm::Triple::aarch64) {
|
else if (targetArch == llvm::Triple::aarch64) {
|
||||||
return subTargetInfo->checkFeatures("+neon");
|
return subTargetInfo->checkFeatures("+neon");
|
||||||
}
|
}
|
||||||
|
else if (targetArch == llvm::Triple::arc) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,8 +104,9 @@ os_thread_exit(void *retval);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Clang's __GNUC_PREREQ macro has a different meaning than GCC one,
|
/* Clang's __GNUC_PREREQ macro has a different meaning than GCC one,
|
||||||
so we have to handle this case specially */
|
so we have to handle this case specially(except the CCAC compiler
|
||||||
#if defined(__clang__)
|
provided by MetaWare, which doesn't support atomic operations) */
|
||||||
|
#if defined(__clang__) && !defined(__CCAC__)
|
||||||
/* Clang provides stdatomic.h since 3.6.0
|
/* Clang provides stdatomic.h since 3.6.0
|
||||||
See https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html */
|
See https://releases.llvm.org/3.6.0/tools/clang/docs/ReleaseNotes.html */
|
||||||
#if __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 6)
|
#if __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 6)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user