summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm-features.h1
-rw-r--r--src/wasm/wasm-validator.cpp6
-rw-r--r--test/passes/alignment-lowering64.passes2
-rw-r--r--test/passes/avoid-reinterprets64.passes2
-rw-r--r--test/passes/dealign64.passes2
-rw-r--r--test/passes/instrument-memory64.passes2
-rw-r--r--test/passes/safe-heap_enable-threads_enable-simd64.passes2
7 files changed, 11 insertions, 6 deletions
diff --git a/src/wasm-features.h b/src/wasm-features.h
index 6e74e0b29..a2bb52971 100644
--- a/src/wasm-features.h
+++ b/src/wasm-features.h
@@ -91,6 +91,7 @@ struct FeatureSet {
bool hasReferenceTypes() const { return (features & ReferenceTypes) != 0; }
bool hasMultivalue() const { return (features & Multivalue) != 0; }
bool hasGC() const { return (features & GC) != 0; }
+ bool hasMemory64() const { return (features & Memory64) != 0; }
bool hasAll() const { return (features & All) != 0; }
void makeMVP() { features = MVP; }
diff --git a/src/wasm/wasm-validator.cpp b/src/wasm/wasm-validator.cpp
index 96871ad8e..644358c04 100644
--- a/src/wasm/wasm-validator.cpp
+++ b/src/wasm/wasm-validator.cpp
@@ -2519,7 +2519,11 @@ static void validateMemory(Module& module, ValidationInfo& info) {
auto& curr = module.memory;
info.shouldBeFalse(
curr.initial > curr.max, "memory", "memory max >= initial");
- if (!curr.is64()) {
+ if (curr.is64()) {
+ info.shouldBeTrue(module.features.hasMemory64(),
+ "memory",
+ "memory is 64-bit, but memory64 is disabled");
+ } else {
info.shouldBeTrue(curr.initial <= Memory::kMaxSize32,
"memory",
"initial memory must be <= 4GB");
diff --git a/test/passes/alignment-lowering64.passes b/test/passes/alignment-lowering64.passes
index 6dfd86e85..7a5b6600a 100644
--- a/test/passes/alignment-lowering64.passes
+++ b/test/passes/alignment-lowering64.passes
@@ -1 +1 @@
-alignment-lowering
+alignment-lowering_enable-memory64
diff --git a/test/passes/avoid-reinterprets64.passes b/test/passes/avoid-reinterprets64.passes
index 4f327b29c..c562577f7 100644
--- a/test/passes/avoid-reinterprets64.passes
+++ b/test/passes/avoid-reinterprets64.passes
@@ -1 +1 @@
-avoid-reinterprets
+avoid-reinterprets_enable-memory64
diff --git a/test/passes/dealign64.passes b/test/passes/dealign64.passes
index e731892d8..e60b7bb7e 100644
--- a/test/passes/dealign64.passes
+++ b/test/passes/dealign64.passes
@@ -1 +1 @@
-dealign
+dealign_enable-memory64
diff --git a/test/passes/instrument-memory64.passes b/test/passes/instrument-memory64.passes
index 3b1583bf9..3dac09045 100644
--- a/test/passes/instrument-memory64.passes
+++ b/test/passes/instrument-memory64.passes
@@ -1 +1 @@
-instrument-memory
+instrument-memory_enable-memory64
diff --git a/test/passes/safe-heap_enable-threads_enable-simd64.passes b/test/passes/safe-heap_enable-threads_enable-simd64.passes
index f114a557d..67d7eef55 100644
--- a/test/passes/safe-heap_enable-threads_enable-simd64.passes
+++ b/test/passes/safe-heap_enable-threads_enable-simd64.passes
@@ -1 +1 @@
-safe-heap_enable-threads_enable-simd
+safe-heap_enable-threads_enable-simd_enable-memory64