summaryrefslogtreecommitdiff
path: root/src/passes/Print.cpp
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2021-01-06 14:36:27 -0500
committerGitHub <noreply@github.com>2021-01-06 11:36:27 -0800
commit3d414652d36aeb27896cc6666ef15db39f245786 (patch)
tree695c7bc5a3c47dff0330b625f2e61cb040accc6d /src/passes/Print.cpp
parentb79661ee03fc74b3f860bf04e6f1019f7b11c722 (diff)
downloadbinaryen-3d414652d36aeb27896cc6666ef15db39f245786.tar.gz
binaryen-3d414652d36aeb27896cc6666ef15db39f245786.tar.bz2
binaryen-3d414652d36aeb27896cc6666ef15db39f245786.zip
Prototype prefetch instructions (#3467)
As proposed in https://github.com/WebAssembly/simd/pull/352, using the opcodes used in the LLVM and V8 implementations.
Diffstat (limited to 'src/passes/Print.cpp')
-rw-r--r--src/passes/Print.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index f9d469faf..8b028c25f 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -683,6 +683,24 @@ struct PrintExpressionContents
}
o << " " << int(curr->index);
}
+ void visitPrefetch(Prefetch* curr) {
+ prepareColor(o);
+ switch (curr->op) {
+ case PrefetchTemporal:
+ o << "prefetch.t";
+ break;
+ case PrefetchNontemporal:
+ o << "prefetch.nt";
+ break;
+ }
+ restoreNormalColor(o);
+ if (curr->offset) {
+ o << " offset=" << curr->offset;
+ }
+ if (curr->align != 1) {
+ o << " align=" << curr->align;
+ }
+ }
void visitMemoryInit(MemoryInit* curr) {
prepareColor(o);
o << "memory.init " << curr->segment;
@@ -2212,6 +2230,13 @@ struct PrintSExpression : public OverriddenVisitor<PrintSExpression> {
printFullLine(curr->vec);
decIndent();
}
+ void visitPrefetch(Prefetch* curr) {
+ o << '(';
+ PrintExpressionContents(currFunction, o).visit(curr);
+ incIndent();
+ printFullLine(curr->ptr);
+ decIndent();
+ }
void visitMemoryInit(MemoryInit* curr) {
o << '(';
PrintExpressionContents(currFunction, o).visit(curr);