diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2018-11-29 13:54:10 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-29 13:54:10 -0800 |
commit | 252fd7f176c4a5ae6a6fa9a5124e153ddbaab638 (patch) | |
tree | 798386cd9eba764138acfbfe27c7d9d41842d811 /src/wasm/literal.cpp | |
parent | 5274d943ec65866089f6764af89205d003a15078 (diff) | |
download | binaryen-252fd7f176c4a5ae6a6fa9a5124e153ddbaab638.tar.gz binaryen-252fd7f176c4a5ae6a6fa9a5124e153ddbaab638.tar.bz2 binaryen-252fd7f176c4a5ae6a6fa9a5124e153ddbaab638.zip |
Add v128 type (#1777)
Diffstat (limited to 'src/wasm/literal.cpp')
-rw-r--r-- | src/wasm/literal.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/wasm/literal.cpp b/src/wasm/literal.cpp index 3eb508bde..7b248010e 100644 --- a/src/wasm/literal.cpp +++ b/src/wasm/literal.cpp @@ -75,6 +75,7 @@ int64_t Literal::getBits() const { switch (type) { case Type::i32: case Type::f32: return i32; case Type::i64: case Type::f64: return i64; + case Type::v128: assert(false && "v128 not implemented"); case Type::none: case Type::unreachable: WASM_UNREACHABLE(); } WASM_UNREACHABLE(); @@ -164,6 +165,7 @@ std::ostream& operator<<(std::ostream& o, Literal literal) { case Type::i64: o << literal.i64; break; case Type::f32: literal.printFloat(o, literal.getf32()); break; case Type::f64: literal.printDouble(o, literal.getf64()); break; + case Type::v128: assert(false && "v128 not implemented yet"); case Type::unreachable: WASM_UNREACHABLE(); } restoreNormalColor(o); @@ -260,6 +262,7 @@ Literal Literal::eqz() const { case Type::i64: return eq(Literal(int64_t(0))); case Type::f32: return eq(Literal(float(0))); case Type::f64: return eq(Literal(double(0))); + case Type::v128: case Type::none: case Type::unreachable: WASM_UNREACHABLE(); } @@ -272,6 +275,7 @@ Literal Literal::neg() const { case Type::i64: return Literal(-uint64_t(i64)); case Type::f32: return Literal(i32 ^ 0x80000000).castToF32(); case Type::f64: return Literal(int64_t(i64 ^ 0x8000000000000000ULL)).castToF64(); + case Type::v128: case Type::none: case Type::unreachable: WASM_UNREACHABLE(); } @@ -284,6 +288,7 @@ Literal Literal::abs() const { case Type::i64: return Literal(int64_t(i64 & 0x7fffffffffffffffULL)); case Type::f32: return Literal(i32 & 0x7fffffff).castToF32(); case Type::f64: return Literal(int64_t(i64 & 0x7fffffffffffffffULL)).castToF64(); + case Type::v128: case Type::none: case Type::unreachable: WASM_UNREACHABLE(); } @@ -351,6 +356,7 @@ Literal Literal::add(const Literal& other) const { case Type::i64: return Literal(uint64_t(i64) + uint64_t(other.i64)); case Type::f32: return Literal(getf32() + other.getf32()); case Type::f64: return Literal(getf64() + other.getf64()); + case Type::v128: case Type::none: case Type::unreachable: WASM_UNREACHABLE(); } @@ -363,6 +369,7 @@ Literal Literal::sub(const Literal& other) const { case Type::i64: return Literal(uint64_t(i64) - uint64_t(other.i64)); case Type::f32: return Literal(getf32() - other.getf32()); case Type::f64: return Literal(getf64() - other.getf64()); + case Type::v128: case Type::none: case Type::unreachable: WASM_UNREACHABLE(); } @@ -375,6 +382,7 @@ Literal Literal::mul(const Literal& other) const { case Type::i64: return Literal(uint64_t(i64) * uint64_t(other.i64)); case Type::f32: return Literal(getf32() * other.getf32()); case Type::f64: return Literal(getf64() * other.getf64()); + case Type::v128: case Type::none: case Type::unreachable: WASM_UNREACHABLE(); } @@ -529,6 +537,7 @@ Literal Literal::eq(const Literal& other) const { case Type::i64: return Literal(i64 == other.i64); case Type::f32: return Literal(getf32() == other.getf32()); case Type::f64: return Literal(getf64() == other.getf64()); + case Type::v128: case Type::none: case Type::unreachable: WASM_UNREACHABLE(); } @@ -541,6 +550,7 @@ Literal Literal::ne(const Literal& other) const { case Type::i64: return Literal(i64 != other.i64); case Type::f32: return Literal(getf32() != other.getf32()); case Type::f64: return Literal(getf64() != other.getf64()); + case Type::v128: case Type::none: case Type::unreachable: WASM_UNREACHABLE(); } |