summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-11-05 20:42:30 +0000
committerDan Gohman <dan433584@gmail.com>2015-11-05 20:42:30 +0000
commitaf29bd4fd43d2a64844c99f4da3ba97d0d7d2402 (patch)
tree9de46133cd93d831531519aafdb190b0c38baf97 /llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td
parentd7ffb919c13a14ac370833cbb5732da0427efeab (diff)
downloadbcm5719-llvm-af29bd4fd43d2a64844c99f4da3ba97d0d7d2402.tar.gz
bcm5719-llvm-af29bd4fd43d2a64844c99f4da3ba97d0d7d2402.zip
[WebAssembly] Add AsmString strings for most instructions.
Mangling type information into MachineInstr opcode names was a temporary measure, and it's starting to get hairy. At the same time, the MC instruction printer wants to use AsmString strings for printing. This patch takes the first step, starting the process of adding AsmStrings for instructions. llvm-svn: 252203
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td42
1 files changed, 22 insertions, 20 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td b/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td
index 02de1bd450d..689aeac6291 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td
@@ -12,31 +12,31 @@
///
//===----------------------------------------------------------------------===//
-defm ADD : BinaryFP<fadd>;
-defm SUB : BinaryFP<fsub>;
-defm MUL : BinaryFP<fmul>;
-defm DIV : BinaryFP<fdiv>;
-defm SQRT : UnaryFP<fsqrt>;
+defm ADD : BinaryFP<fadd, "add">;
+defm SUB : BinaryFP<fsub, "sub">;
+defm MUL : BinaryFP<fmul, "mul">;
+defm DIV : BinaryFP<fdiv, "div">;
+defm SQRT : UnaryFP<fsqrt, "sqrt">;
-defm ABS : UnaryFP<fabs>;
-defm NEG : UnaryFP<fneg>;
-defm COPYSIGN : BinaryFP<fcopysign>;
+defm ABS : UnaryFP<fabs, "abs">;
+defm NEG : UnaryFP<fneg, "neg">;
+defm COPYSIGN : BinaryFP<fcopysign, "copysign">;
-defm CEIL : UnaryFP<fceil>;
-defm FLOOR : UnaryFP<ffloor>;
-defm TRUNC : UnaryFP<ftrunc>;
-defm NEAREST : UnaryFP<fnearbyint>;
+defm CEIL : UnaryFP<fceil, "ceil">;
+defm FLOOR : UnaryFP<ffloor, "floor">;
+defm TRUNC : UnaryFP<ftrunc, "trunc">;
+defm NEAREST : UnaryFP<fnearbyint, "nearest">;
// WebAssembly doesn't expose inexact exceptions, so map frint to fnearbyint.
def : Pat<(frint f32:$src), (NEAREST_F32 f32:$src)>;
def : Pat<(frint f64:$src), (NEAREST_F64 f64:$src)>;
-defm EQ : ComparisonFP<SETOEQ>;
-defm NE : ComparisonFP<SETUNE>;
-defm LT : ComparisonFP<SETOLT>;
-defm LE : ComparisonFP<SETOLE>;
-defm GT : ComparisonFP<SETOGT>;
-defm GE : ComparisonFP<SETOGE>;
+defm EQ : ComparisonFP<SETOEQ, "eq">;
+defm NE : ComparisonFP<SETUNE, "ne">;
+defm LT : ComparisonFP<SETOLT, "lt">;
+defm LE : ComparisonFP<SETOLE, "le">;
+defm GT : ComparisonFP<SETOGT, "gt">;
+defm GE : ComparisonFP<SETOGE, "ge">;
// Don't care floating-point comparisons, supported via other comparisons.
def : Pat<(seteq f32:$lhs, f32:$rhs), (EQ_F32 f32:$lhs, f32:$rhs)>;
@@ -60,6 +60,8 @@ def : Pat<(setge f64:$lhs, f64:$rhs), (GE_F64 f64:$lhs, f64:$rhs)>;
*/
def SELECT_F32 : I<(outs F32:$dst), (ins I32:$cond, F32:$lhs, F32:$rhs),
- [(set F32:$dst, (select I32:$cond, F32:$lhs, F32:$rhs))]>;
+ [(set F32:$dst, (select I32:$cond, F32:$lhs, F32:$rhs))],
+ "f32.select $dst, $cond, $lhs, $rhs">;
def SELECT_F64 : I<(outs F64:$dst), (ins I32:$cond, F64:$lhs, F64:$rhs),
- [(set F64:$dst, (select I32:$cond, F64:$lhs, F64:$rhs))]>;
+ [(set F64:$dst, (select I32:$cond, F64:$lhs, F64:$rhs))],
+ "f64.select $dst, $cond, $lhs, $rhs">;
OpenPOWER on IntegriCloud