summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2023-05-19 13:47:32 -0500
committerGitHub <noreply@github.com>2023-05-19 11:47:32 -0700
commitb7b1d0df29df14634d2c680d1d2c351b624b4fbb (patch)
tree808bd70c6502ba2ba3ef275048c89deaedbe5077 /src/passes/Print.cpp
parente42a58696059fd1cadcf25e10223b979214984b3 (diff)
downloadbinaryen-b7b1d0df29df14634d2c680d1d2c351b624b4fbb.tar.gz
binaryen-b7b1d0df29df14634d2c680d1d2c351b624b4fbb.tar.bz2
binaryen-b7b1d0df29df14634d2c680d1d2c351b624b4fbb.zip
Update br_on_cast binary and text format (#5734)
The final versions of the br_on_cast and br_on_cast_fail instructions have two reference type annotations: one for the input type and one for the cast target type. In the binary format, this is represented as a flags byte followed by two encoded heap types. Since these instructions have been in flux for a while, do not attempt to maintain backward compatibility with older versions of the instructions. Instead, upgrade all of the tests at once to use the new versions of the instructions. Drop some binary tests of deprecated instruction encodings that would be more effort to update than they're worth.
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index 0d74d43f1..4bcc042a1 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -2172,10 +2172,9 @@ struct PrintExpressionContents
printMedium(o, "br_on_cast ");
printName(curr->name, o);
o << ' ';
- if (curr->castType.isNullable()) {
- printMedium(o, "null ");
- }
- printHeapType(o, curr->castType.getHeapType(), wasm);
+ printType(o, curr->ref->type, wasm);
+ o << ' ';
+ printType(o, curr->castType, wasm);
return;
case BrOnCastFail:
// TODO: These instructions are deprecated, so stop emitting them.
@@ -2197,10 +2196,9 @@ struct PrintExpressionContents
printMedium(o, "br_on_cast_fail ");
printName(curr->name, o);
o << ' ';
- if (curr->castType.isNullable()) {
- printMedium(o, "null ");
- }
- printHeapType(o, curr->castType.getHeapType(), wasm);
+ printType(o, curr->ref->type, wasm);
+ o << ' ';
+ printType(o, curr->castType, wasm);
return;
}
WASM_UNREACHABLE("Unexpected br_on* op");