diff options
author | Dan Gohman <dan433584@gmail.com> | 2015-11-29 22:59:19 +0000 |
---|---|---|
committer | Dan Gohman <dan433584@gmail.com> | 2015-11-29 22:59:19 +0000 |
commit | 174b2d83ee02d7375a5b3938a902558f63683171 (patch) | |
tree | 6e3548d183fa09d00a9dc6b187a785d8e86acdf4 /llvm/lib/Target/WebAssembly/WebAssemblyInstrInteger.td | |
parent | e20b8c68ed75852b0e4ed8b9eb0053541e1272af (diff) | |
download | bcm5719-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.td | 9 |
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">; |