summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2022-07-06 08:48:12 -0700
committerGitHub <noreply@github.com>2022-07-06 08:48:12 -0700
commit876638f8fb5bfc8b264eddc6c0c0d54ed40d0095 (patch)
tree40138beab484617d5b3af474f8e1bd485ffc603e /src/wasm.h
parentb69d3a8fa0d6d7588811ef92067a48eed576e03f (diff)
downloadbinaryen-876638f8fb5bfc8b264eddc6c0c0d54ed40d0095.tar.gz
binaryen-876638f8fb5bfc8b264eddc6c0c0d54ed40d0095.tar.bz2
binaryen-876638f8fb5bfc8b264eddc6c0c0d54ed40d0095.zip
[Strings] Add string.const (#4768)
This is more work than a typical instruction because it also adds a new section: all the (string.const "foo") strings are put in a new "strings" section in the binary, and the instructions refer to them by index.
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/wasm.h b/src/wasm.h
index 6d0733d34..3032b4ac1 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -686,6 +686,7 @@ public:
ArrayCopyId,
RefAsId,
StringNewId,
+ StringConstId,
NumExpressionIds
};
Id _id;
@@ -1664,6 +1665,18 @@ public:
void finalize();
};
+class StringConst : public SpecificExpression<Expression::StringConstId> {
+public:
+ StringConst(MixedArena& allocator) {}
+
+ // TODO: Use a different type to allow null bytes in the middle -
+ // ArenaVector<char> perhaps? However, Name has the benefit of being
+ // interned and immutable (which is appropriate here).
+ Name string;
+
+ void finalize();
+};
+
// Globals
struct Named {