diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2021-01-06 14:36:27 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-06 11:36:27 -0800 |
commit | 3d414652d36aeb27896cc6666ef15db39f245786 (patch) | |
tree | 695c7bc5a3c47dff0330b625f2e61cb040accc6d /src/passes/Print.cpp | |
parent | b79661ee03fc74b3f860bf04e6f1019f7b11c722 (diff) | |
download | binaryen-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.cpp | 25 |
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); |