diff options
author | Alon Zakai <azakai@google.com> | 2022-07-06 08:48:12 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-06 08:48:12 -0700 |
commit | 876638f8fb5bfc8b264eddc6c0c0d54ed40d0095 (patch) | |
tree | 40138beab484617d5b3af474f8e1bd485ffc603e /src/wasm.h | |
parent | b69d3a8fa0d6d7588811ef92067a48eed576e03f (diff) | |
download | binaryen-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.h | 13 |
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 { |