summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-11-29 22:59:19 +0000
committerDan Gohman <dan433584@gmail.com>2015-11-29 22:59:19 +0000
commit174b2d83ee02d7375a5b3938a902558f63683171 (patch)
tree6e3548d183fa09d00a9dc6b187a785d8e86acdf4 /llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
parente20b8c68ed75852b0e4ed8b9eb0053541e1272af (diff)
downloadbcm5719-llvm-174b2d83ee02d7375a5b3938a902558f63683171.tar.gz
bcm5719-llvm-174b2d83ee02d7375a5b3938a902558f63683171.zip
[WebAssembly] Set several MCInstrDesc flags.
llvm-svn: 254271
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td b/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
index 3fa2f712034..09e5eafb85e 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td
@@ -16,22 +16,31 @@ let Defs = [ARGUMENTS] in {
// The spaces after the names are for aesthetic purposes only, to make
// operands line up vertically after tab expansion.
+let isCommutable = 1 in
defm ADD : BinaryInt<add, "add ">;
defm SUB : BinaryInt<sub, "sub ">;
+let isCommutable = 1 in
defm MUL : BinaryInt<mul, "mul ">;
+// Divide and remainder trap on a zero denominator.
+let hasSideEffects = 1 in {
defm DIV_S : BinaryInt<sdiv, "div_s">;
defm DIV_U : BinaryInt<udiv, "div_u">;
defm REM_S : BinaryInt<srem, "rem_s">;
defm REM_U : BinaryInt<urem, "rem_u">;
+} // hasSideEffects = 1
+let isCommutable = 1 in {
defm AND : BinaryInt<and, "and ">;
defm OR : BinaryInt<or, "or ">;
defm XOR : BinaryInt<xor, "xor ">;
+} // isCommutable = 1
defm SHL : BinaryInt<shl, "shl ">;
defm SHR_U : BinaryInt<srl, "shr_u">;
defm SHR_S : BinaryInt<sra, "shr_s">;
+let isCommutable = 1 in {
defm EQ : ComparisonInt<SETEQ, "eq ">;
defm NE : ComparisonInt<SETNE, "ne ">;
+} // isCommutable = 1
defm LT_S : ComparisonInt<SETLT, "lt_s">;
defm LE_S : ComparisonInt<SETLE, "le_s">;
defm LT_U : ComparisonInt<SETULT, "lt_u">;
OpenPOWER on IntegriCloud