diff options
Diffstat (limited to 'clang/lib/Basic/Targets/WebAssembly.cpp')
-rw-r--r-- | clang/lib/Basic/Targets/WebAssembly.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets/WebAssembly.cpp b/clang/lib/Basic/Targets/WebAssembly.cpp index d9d01bc..85e550a 100644 --- a/clang/lib/Basic/Targets/WebAssembly.cpp +++ b/clang/lib/Basic/Targets/WebAssembly.cpp @@ -31,7 +31,7 @@ static constexpr Builtin::Info BuiltinInfo[] = { }; static constexpr llvm::StringLiteral ValidCPUNames[] = { - {"mvp"}, {"bleeding-edge"}, {"generic"}}; + {"mvp"}, {"bleeding-edge"}, {"generic"}, {"lime"}}; StringRef WebAssemblyTargetInfo::getABI() const { return ABI; } @@ -167,6 +167,17 @@ bool WebAssemblyTargetInfo::initFeatureMap( Features["reference-types"] = true; Features["sign-ext"] = true; }; + auto addLime1Features = [&]() { + // Lime1: + // <https://github.com/WebAssembly/tool-conventions/blob/main/Lime.md#lime1> + Features["bulk-memory-opt"] = true; + Features["call-indirect-overlong"] = true; + Features["extended-const"] = true; + Features["multivalue"] = true; + Features["mutable-globals"] = true; + Features["nontrapping-fptoint"] = true; + Features["sign-ext"] = true; + }; auto addBleedingEdgeFeatures = [&]() { addGenericFeatures(); Features["atomics"] = true; @@ -180,6 +191,8 @@ bool WebAssemblyTargetInfo::initFeatureMap( }; if (CPU == "generic") { addGenericFeatures(); + } else if (CPU == "lime1") { + addLime1Features(); } else if (CPU == "bleeding-edge") { addBleedingEdgeFeatures(); } |