diff options
-rw-r--r-- | src/wasm-features.h | 1 | ||||
-rw-r--r-- | src/wasm/wasm-validator.cpp | 6 | ||||
-rw-r--r-- | test/passes/alignment-lowering64.passes | 2 | ||||
-rw-r--r-- | test/passes/avoid-reinterprets64.passes | 2 | ||||
-rw-r--r-- | test/passes/dealign64.passes | 2 | ||||
-rw-r--r-- | test/passes/instrument-memory64.passes | 2 | ||||
-rw-r--r-- | test/passes/safe-heap_enable-threads_enable-simd64.passes | 2 |
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 |