Reviewers: danno, Benedikt Meurer, paul.l..., gergely.kis.imgtec, akos.palfi.imgtec, dusmil.imgtec,

Description:
MIPS: [turbofan] Introduce optional Float64Min and Float64Max machine operators.

Port 99f8d57f3c5d967bc3b10356b22d7ec7be55e89f

Original commit message:
Basically recognize certain x < y ? x : y constructs and turn that into
Float64Min/Float64Max operations, if the target machine supports that.
On x86 we lower to (v)minsd/(v)maxsd.

BUG=

Please review this at https://codereview.chromium.org/1006513002/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+12, -0 lines):
  M src/compiler/mips/instruction-selector-mips.cc
  M src/compiler/mips64/instruction-selector-mips64.cc


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 427cc2c3b5c4d76da41600621c81d74c546ec7e9..2822e44a8b64f984fa419bd92104c3e3b6159554 100644
--- a/src/compiler/mips/instruction-selector-mips.cc
+++ b/src/compiler/mips/instruction-selector-mips.cc
@@ -437,6 +437,12 @@ void InstructionSelector::VisitFloat64Mod(Node* node) {
 }


+void InstructionSelector::VisitFloat64Max(Node* node) { UNREACHABLE(); }
+
+
+void InstructionSelector::VisitFloat64Min(Node* node) { UNREACHABLE(); }
+
+
 void InstructionSelector::VisitFloat64Sqrt(Node* node) {
   MipsOperandGenerator g(this);
Emit(kMipsSqrtD, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0)));
Index: src/compiler/mips64/instruction-selector-mips64.cc
diff --git a/src/compiler/mips64/instruction-selector-mips64.cc b/src/compiler/mips64/instruction-selector-mips64.cc index e75283093801ee169a3cb0e07000cb24761e4792..b2a40a0d61154f0756519eb4470f5c778fec9b81 100644
--- a/src/compiler/mips64/instruction-selector-mips64.cc
+++ b/src/compiler/mips64/instruction-selector-mips64.cc
@@ -617,6 +617,12 @@ void InstructionSelector::VisitFloat64Mod(Node* node) {
 }


+void InstructionSelector::VisitFloat64Max(Node* node) { UNREACHABLE(); }
+
+
+void InstructionSelector::VisitFloat64Min(Node* node) { UNREACHABLE(); }
+
+
 void InstructionSelector::VisitFloat64Sqrt(Node* node) {
   Mips64OperandGenerator g(this);
Emit(kMips64SqrtD, g.DefineAsRegister(node), g.UseRegister(node->InputAt(0)));


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to