diff options
author | Alon Zakai <azakai@google.com> | 2021-01-11 21:10:28 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-11 13:10:28 -0800 |
commit | fa3a74351be3c9903a95cff45dc8f903e1017461 (patch) | |
tree | cf7914e40cb419d8518b6430128c855745d0cfed /src/wasm-delegations-fields.h | |
parent | 0a1972b56a5bae9874808673041d3a48d3c86153 (diff) | |
download | binaryen-fa3a74351be3c9903a95cff45dc8f903e1017461.tar.gz binaryen-fa3a74351be3c9903a95cff45dc8f903e1017461.tar.bz2 binaryen-fa3a74351be3c9903a95cff45dc8f903e1017461.zip |
[GC] Fix minor binary format issues of ordering and immediates (#3472)
Noticed by comparing to V8 and Wasp. After this things are almost identical,
but there is also at least https://bugs.chromium.org/p/v8/issues/detail?id=11300
Test updates are due to having an instruction with two operands of which one is
unreachable. The new order puts the non-unreachable first, so it is not removed by
round-tripping through the binary format like before (which removes all unreachable
code).
Diffstat (limited to 'src/wasm-delegations-fields.h')
-rw-r--r-- | src/wasm-delegations-fields.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/wasm-delegations-fields.h b/src/wasm-delegations-fields.h index 8322fdeed..37fb60ef2 100644 --- a/src/wasm-delegations-fields.h +++ b/src/wasm-delegations-fields.h @@ -568,15 +568,15 @@ switch (DELEGATE_ID) { } case Expression::Id::RefTestId: { DELEGATE_START(RefTest); - DELEGATE_FIELD_CHILD(RefTest, ref); DELEGATE_FIELD_CHILD(RefTest, rtt); + DELEGATE_FIELD_CHILD(RefTest, ref); DELEGATE_END(RefTest); break; } case Expression::Id::RefCastId: { DELEGATE_START(RefCast); - DELEGATE_FIELD_CHILD(RefCast, ref); DELEGATE_FIELD_CHILD(RefCast, rtt); + DELEGATE_FIELD_CHILD(RefCast, ref); DELEGATE_END(RefCast); break; } @@ -584,8 +584,8 @@ switch (DELEGATE_ID) { DELEGATE_START(BrOnCast); DELEGATE_FIELD_SCOPE_NAME_USE(BrOnCast, name); DELEGATE_FIELD_TYPE(BrOnCast, castType); - DELEGATE_FIELD_CHILD(BrOnCast, ref); DELEGATE_FIELD_CHILD(BrOnCast, rtt); + DELEGATE_FIELD_CHILD(BrOnCast, ref); DELEGATE_END(BrOnCast); break; } @@ -618,8 +618,8 @@ switch (DELEGATE_ID) { case Expression::Id::StructSetId: { DELEGATE_START(StructSet); DELEGATE_FIELD_INT(StructSet, index); - DELEGATE_FIELD_CHILD(StructSet, ref); DELEGATE_FIELD_CHILD(StructSet, value); + DELEGATE_FIELD_CHILD(StructSet, ref); DELEGATE_END(StructSet); break; } @@ -633,17 +633,17 @@ switch (DELEGATE_ID) { } case Expression::Id::ArrayGetId: { DELEGATE_START(ArrayGet); - DELEGATE_FIELD_CHILD(ArrayGet, ref); DELEGATE_FIELD_CHILD(ArrayGet, index); + DELEGATE_FIELD_CHILD(ArrayGet, ref); DELEGATE_FIELD_INT(ArrayGet, signed_); DELEGATE_END(ArrayGet); break; } case Expression::Id::ArraySetId: { DELEGATE_START(ArraySet); - DELEGATE_FIELD_CHILD(ArrayGet, ref); - DELEGATE_FIELD_CHILD(ArrayGet, index); DELEGATE_FIELD_CHILD(ArrayGet, value); + DELEGATE_FIELD_CHILD(ArrayGet, index); + DELEGATE_FIELD_CHILD(ArrayGet, ref); DELEGATE_END(ArraySet); break; } |