summaryrefslogtreecommitdiff
path: root/src/wasm-binary.h
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2022-08-04 17:05:54 -0700
committerGitHub <noreply@github.com>2022-08-05 00:05:54 +0000
commit6759371b5239efa3daa9d988455abdd14a8b18ca (patch)
tree0c3a3e371ed742bdbd790f7344ec86e8536bc167 /src/wasm-binary.h
parent9534e6927c41f4a6a5d06d58d00c271c9f066e9a (diff)
downloadbinaryen-6759371b5239efa3daa9d988455abdd14a8b18ca.tar.gz
binaryen-6759371b5239efa3daa9d988455abdd14a8b18ca.tar.bz2
binaryen-6759371b5239efa3daa9d988455abdd14a8b18ca.zip
Remove RTTs (#4848)
RTTs were removed from the GC spec and if they are added back in in the future, they will be heap types rather than value types as in our implementation. Updating our implementation to have RTTs be heap types would have been more work than deleting them for questionable benefit since we don't know how long it will be before they are specced again.
Diffstat (limited to 'src/wasm-binary.h')
-rw-r--r--src/wasm-binary.h20
1 files changed, 1 insertions, 19 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 200252da7..6b05c38cc 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -373,10 +373,6 @@ enum EncodedType {
nonnullable = -0x15, // 0x6b
// integer reference type
i31ref = -0x16, // 0x6a
- // run-time type info type, with depth index n
- rtt_n = -0x17, // 0x69
- // run-time type info type, without depth index n
- rtt = -0x18, // 0x68
// gc and string reference types
dataref = -0x19, // 0x67
stringref = -0x1c, // 0x64
@@ -1089,36 +1085,24 @@ enum ASTNodes {
// gc opcodes
RefEq = 0xd5,
- StructNewWithRtt = 0x01,
- StructNewDefaultWithRtt = 0x02,
StructGet = 0x03,
StructGetS = 0x04,
StructGetU = 0x05,
StructSet = 0x06,
StructNew = 0x07,
StructNewDefault = 0x08,
- ArrayNewWithRtt = 0x11,
- ArrayNewDefaultWithRtt = 0x12,
ArrayGet = 0x13,
ArrayGetS = 0x14,
ArrayGetU = 0x15,
ArraySet = 0x16,
ArrayLen = 0x17,
ArrayCopy = 0x18,
- ArrayInit = 0x19,
ArrayInitStatic = 0x1a,
ArrayNew = 0x1b,
ArrayNewDefault = 0x1c,
I31New = 0x20,
I31GetS = 0x21,
I31GetU = 0x22,
- RttCanon = 0x30,
- RttSub = 0x31,
- RttFreshSub = 0x32,
- RefTest = 0x40,
- RefCast = 0x41,
- BrOnCast = 0x42,
- BrOnCastFail = 0x43,
RefTestStatic = 0x44,
RefCastStatic = 0x45,
BrOnCastStatic = 0x46,
@@ -1708,8 +1692,6 @@ public:
bool maybeVisitRefTest(Expression*& out, uint32_t code);
bool maybeVisitRefCast(Expression*& out, uint32_t code);
bool maybeVisitBrOn(Expression*& out, uint32_t code);
- bool maybeVisitRttCanon(Expression*& out, uint32_t code);
- bool maybeVisitRttSub(Expression*& out, uint32_t code);
bool maybeVisitStructNew(Expression*& out, uint32_t code);
bool maybeVisitStructGet(Expression*& out, uint32_t code);
bool maybeVisitStructSet(Expression*& out, uint32_t code);
@@ -1755,7 +1737,7 @@ public:
// Struct/Array instructions have an unnecessary heap type that is just for
// validation (except for the case of unreachability, but that's not a problem
- // anyhow, we can ignore it there). That is, we also have a reference / rtt
+ // anyhow, we can ignore it there). That is, we also have a reference typed
// child from which we can infer the type anyhow, and we just need to check
// that type is the same.
void validateHeapTypeUsingChild(Expression* child, HeapType heapType);