Index: src/compiler/mips/instruction-selector-mips.cc |
diff --git a/src/compiler/mips/instruction-selector-mips.cc b/src/compiler/mips/instruction-selector-mips.cc |
index 61a5a1cfc3f7847a3b2e8dbd0bc0b0514625e09d..28e030fa1aa87fc92f32af17d1832573ffa37f69 100644 |
--- a/src/compiler/mips/instruction-selector-mips.cc |
+++ b/src/compiler/mips/instruction-selector-mips.cc |
@@ -463,10 +463,14 @@ void InstructionSelector::VisitFloat32Min(Node* node) { UNREACHABLE(); } |
void InstructionSelector::VisitFloat64Min(Node* node) { UNREACHABLE(); } |
-void InstructionSelector::VisitFloat32Abs(Node* node) { UNREACHABLE(); } |
+void InstructionSelector::VisitFloat32Abs(Node* node) { |
+ VisitRR(this, kMipsAbsS, node); |
+} |
-void InstructionSelector::VisitFloat64Abs(Node* node) { UNREACHABLE(); } |
+void InstructionSelector::VisitFloat64Abs(Node* node) { |
+ VisitRR(this, kMipsAbsD, node); |
+} |
void InstructionSelector::VisitFloat32Sqrt(Node* node) { |
@@ -970,11 +974,14 @@ void InstructionSelector::VisitFloat64InsertHighWord32(Node* node) { |
// static |
MachineOperatorBuilder::Flags |
InstructionSelector::SupportedMachineOperatorFlags() { |
+ MachineOperatorBuilder::Flags flags = |
+ MachineOperatorBuilder::kFloat32Abs | MachineOperatorBuilder::kFloat64Abs; |
+ |
if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) { |
- return MachineOperatorBuilder::kFloat64RoundDown | |
- MachineOperatorBuilder::kFloat64RoundTruncate; |
+ flags |= MachineOperatorBuilder::kFloat64RoundDown | |
+ MachineOperatorBuilder::kFloat64RoundTruncate; |
} |
- return MachineOperatorBuilder::kNoFlags; |
+ return flags; |
} |
} // namespace compiler |