summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2015-12-05 13:32:48 -0800
committerAlon Zakai <alonzakai@gmail.com>2015-12-05 13:33:27 -0800
commite1ad2c5541e3e9e8b00c387d7aa072a6b76e3008 (patch)
treea57ee46e1c819f3dc8ab27d3547af85532610fd6 /src
parent05684cead0dfa8c553d1bed38a5b8746b45e0dec (diff)
downloadbinaryen-e1ad2c5541e3e9e8b00c387d7aa072a6b76e3008.tar.gz
binaryen-e1ad2c5541e3e9e8b00c387d7aa072a6b76e3008.tar.bz2
binaryen-e1ad2c5541e3e9e8b00c387d7aa072a6b76e3008.zip
add makeSigning method
Diffstat (limited to 'src')
-rw-r--r--src/emscripten-optimizer/optimizer-shared.cpp5
-rw-r--r--src/emscripten-optimizer/optimizer.h2
2 files changed, 7 insertions, 0 deletions
diff --git a/src/emscripten-optimizer/optimizer-shared.cpp b/src/emscripten-optimizer/optimizer-shared.cpp
index 09b458138..7fe91eeab 100644
--- a/src/emscripten-optimizer/optimizer-shared.cpp
+++ b/src/emscripten-optimizer/optimizer-shared.cpp
@@ -228,3 +228,8 @@ Ref makeAsmCoercion(Ref node, AsmType type) {
}
}
+Ref makeSigning(Ref node, AsmSign sign) {
+ assert(sign == ASM_SIGNED || sign == ASM_UNSIGNED);
+ return ValueBuilder::makeBinary(node, sign == ASM_SIGNED ? OR : TRSHIFT, ValueBuilder::makeNum(0));
+}
+
diff --git a/src/emscripten-optimizer/optimizer.h b/src/emscripten-optimizer/optimizer.h
index 00303aee9..6850214c2 100644
--- a/src/emscripten-optimizer/optimizer.h
+++ b/src/emscripten-optimizer/optimizer.h
@@ -140,5 +140,7 @@ inline cashew::Ref deStat(cashew::Ref node) {
cashew::Ref makeAsmCoercedZero(AsmType type);
cashew::Ref makeAsmCoercion(cashew::Ref node, AsmType type);
+cashew::Ref makeSigning(cashew::Ref node, AsmSign sign);
+
#endif // __optimizer_h__