summaryrefslogtreecommitdiff
path: root/src/wasm
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2023-02-03 12:32:25 -0800
committerGitHub <noreply@github.com>2023-02-03 12:32:25 -0800
commit90c726a606cf8f99307a41d8f889de4e1221c4f8 (patch)
tree8dcecebb36a2aa437a8abbebd8e225aeb4a516cb /src/wasm
parent42b859f01df94dfffb01258b2305df8ec4d05304 (diff)
downloadbinaryen-90c726a606cf8f99307a41d8f889de4e1221c4f8.tar.gz
binaryen-90c726a606cf8f99307a41d8f889de4e1221c4f8.tar.bz2
binaryen-90c726a606cf8f99307a41d8f889de4e1221c4f8.zip
[Strings] Add experimental string.hash instruction (#5480)
See WebAssembly/stringref#60
Diffstat (limited to 'src/wasm')
-rw-r--r--src/wasm/wasm-binary.cpp2
-rw-r--r--src/wasm/wasm-stack.cpp3
2 files changed, 5 insertions, 0 deletions
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp
index 431c39631..b616b5a31 100644
--- a/src/wasm/wasm-binary.cpp
+++ b/src/wasm/wasm-binary.cpp
@@ -7286,6 +7286,8 @@ bool WasmBinaryBuilder::maybeVisitStringMeasure(Expression*& out,
op = StringMeasureIsUSV;
} else if (code == BinaryConsts::StringViewWTF16Length) {
op = StringMeasureWTF16View;
+ } else if (code == BinaryConsts::StringHash) {
+ op = StringMeasureHash;
} else {
return false;
}
diff --git a/src/wasm/wasm-stack.cpp b/src/wasm/wasm-stack.cpp
index a2fba3907..1c12718ce 100644
--- a/src/wasm/wasm-stack.cpp
+++ b/src/wasm/wasm-stack.cpp
@@ -2338,6 +2338,9 @@ void BinaryInstWriter::visitStringMeasure(StringMeasure* curr) {
case StringMeasureWTF16View:
o << U32LEB(BinaryConsts::StringViewWTF16Length);
break;
+ case StringMeasureHash:
+ o << U32LEB(BinaryConsts::StringHash);
+ break;
default:
WASM_UNREACHABLE("invalid string.new*");
}