diff options
author | Thomas Lively <tlively@google.com> | 2019-01-10 22:32:11 +0000 |
---|---|---|
committer | Thomas Lively <tlively@google.com> | 2019-01-10 22:32:11 +0000 |
commit | 64a39a1c4ef082185a7bf4dc546099aeafd3ccfd (patch) | |
tree | d7db22fae0a9361103331be9aabf389f4b330812 /llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h | |
parent | b6d0f85daf1e0273d40a0ff133a90805c7bb2ef7 (diff) | |
download | bcm5719-llvm-64a39a1c4ef082185a7bf4dc546099aeafd3ccfd.tar.gz bcm5719-llvm-64a39a1c4ef082185a7bf4dc546099aeafd3ccfd.zip |
[WebAssembly] Add unimplemented-simd128 subtarget feature
Summary:
This is a third attempt, but this time we have vetted it on Windows
first. The previous errors were due to an uninitialized class member.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, sunfish, jfb, llvm-commits
Differential Revision: https://reviews.llvm.org/D56560
llvm-svn: 350901
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h b/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h index b170dbff3b3..0a0c04609ac 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h +++ b/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h @@ -29,11 +29,16 @@ namespace llvm { class WebAssemblySubtarget final : public WebAssemblyGenSubtargetInfo { - bool HasSIMD128; - bool HasAtomics; - bool HasNontrappingFPToInt; - bool HasSignExt; - bool HasExceptionHandling; + enum SIMDEnum { + NoSIMD, + SIMD128, + UnimplementedSIMD128, + } SIMDLevel = NoSIMD; + + bool HasAtomics = false; + bool HasNontrappingFPToInt = false; + bool HasSignExt = false; + bool HasExceptionHandling = false; /// String name of used CPU. std::string CPUString; @@ -77,7 +82,10 @@ public: // Predicates used by WebAssemblyInstrInfo.td. bool hasAddr64() const { return TargetTriple.isArch64Bit(); } - bool hasSIMD128() const { return HasSIMD128; } + bool hasSIMD128() const { return SIMDLevel >= SIMD128; } + bool hasUnimplementedSIMD128() const { + return SIMDLevel >= UnimplementedSIMD128; + } bool hasAtomics() const { return HasAtomics; } bool hasNontrappingFPToInt() const { return HasNontrappingFPToInt; } bool hasSignExt() const { return HasSignExt; } |