summaryrefslogtreecommitdiff
path: root/src/wasm-interpreter.h
diff options
context:
space:
mode:
authorDaniel Wirtz <dcode@dcode.io>2020-09-29 22:19:09 +0200
committerGitHub <noreply@github.com>2020-09-29 22:19:09 +0200
commit7d673ce83206349159a68fe683bc7da02dcdaf98 (patch)
treeb6be0e5842b8726406c50e9481531cf456db326f /src/wasm-interpreter.h
parent781da4c206c54e92b46358c00d079ada66cef0df (diff)
downloadbinaryen-7d673ce83206349159a68fe683bc7da02dcdaf98.tar.gz
binaryen-7d673ce83206349159a68fe683bc7da02dcdaf98.tar.bz2
binaryen-7d673ce83206349159a68fe683bc7da02dcdaf98.zip
GC: Add stubs for the remaining instructions (#3174)
NFC, except adding most of the boilerplate for the remaining GC instructions. Each implementation site is marked with a respective `TODO (gc): theInstruction` in between the typical boilerplate code.
Diffstat (limited to 'src/wasm-interpreter.h')
-rw-r--r--src/wasm-interpreter.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 4f3de9078..e44ffca3a 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -1344,6 +1344,54 @@ public:
NOTE_EVAL1(value);
return Literal(value.geti31(curr->signed_));
}
+ Flow visitRefTest(RefTest* curr) {
+ NOTE_ENTER("RefTest");
+ WASM_UNREACHABLE("TODO (gc): ref.test");
+ }
+ Flow visitRefCast(RefCast* curr) {
+ NOTE_ENTER("RefCast");
+ WASM_UNREACHABLE("TODO (gc): ref.cast");
+ }
+ Flow visitBrOnCast(BrOnCast* curr) {
+ NOTE_ENTER("BrOnCast");
+ WASM_UNREACHABLE("TODO (gc): br_on_cast");
+ }
+ Flow visitRttCanon(RttCanon* curr) {
+ NOTE_ENTER("RttCanon");
+ WASM_UNREACHABLE("TODO (gc): rtt.canon");
+ }
+ Flow visitRttSub(RttSub* curr) {
+ NOTE_ENTER("RttSub");
+ WASM_UNREACHABLE("TODO (gc): rtt.sub");
+ }
+ Flow visitStructNew(StructNew* curr) {
+ NOTE_ENTER("StructNew");
+ WASM_UNREACHABLE("TODO (gc): struct.new");
+ }
+ Flow visitStructGet(StructGet* curr) {
+ NOTE_ENTER("StructGet");
+ WASM_UNREACHABLE("TODO (gc): struct.get");
+ }
+ Flow visitStructSet(StructSet* curr) {
+ NOTE_ENTER("StructSet");
+ WASM_UNREACHABLE("TODO (gc): struct.set");
+ }
+ Flow visitArrayNew(ArrayNew* curr) {
+ NOTE_ENTER("ArrayNew");
+ WASM_UNREACHABLE("TODO (gc): array.new");
+ }
+ Flow visitArrayGet(ArrayGet* curr) {
+ NOTE_ENTER("ArrayGet");
+ WASM_UNREACHABLE("TODO (gc): array.get");
+ }
+ Flow visitArraySet(ArraySet* curr) {
+ NOTE_ENTER("ArraySet");
+ WASM_UNREACHABLE("TODO (gc): array.set");
+ }
+ Flow visitArrayLen(ArrayLen* curr) {
+ NOTE_ENTER("ArrayLen");
+ WASM_UNREACHABLE("TODO (gc): array.len");
+ }
virtual void trap(const char* why) { WASM_UNREACHABLE("unimp"); }